├── media ├── .gitkeep ├── 1.jpg └── 2.jpg ├── README.md ├── index.js ├── index.html └── style.css /media/.gitkeep: -------------------------------------------------------------------------------- 1 | 1 2 | -------------------------------------------------------------------------------- /media/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dev-ir/bandwidth-calculations/HEAD/media/1.jpg -------------------------------------------------------------------------------- /media/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dev-ir/bandwidth-calculations/HEAD/media/2.jpg -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # مبدل پهنای باند و حجم دانلود 2 | 3 | این پروژه یک مبدل آنلاین است که به کاربران کمک میکند تا محاسبه کنند: 4 | 1. اگر یک پورت پهنای باند اختصاصی (مثلاً 1 گیگابیت بر ثانیه) داشته باشند، در یک بازه زمانی مشخص چند ترابایت داده میتوانند دریافت کنند. 5 | 2. همچنین به کاربران امکان میدهد مقدار داده (ترابایت) مورد نظرشان را وارد کنند تا پهنای باند مورد نیاز برای دریافت آن داده را در بازه زمانی مشخص محاسبه کنند. 6 | 7 |  8 | ## ویژگیها 9 | 10 | - **محاسبه حجم دانلود**: با وارد کردن پهنای باند و بازه زمانی، مقدار دادهای که میتوانید در آن بازه دریافت کنید محاسبه میشود. 11 | - **محاسبه پهنای باند مورد نیاز**: با وارد کردن مقدار داده (ترابایت) و بازه زمانی، پهنای باند مورد نیاز برای دریافت آن داده محاسبه میشود. 12 | - **رابط کاربری ساده و کاربرپسند**: با کلیک روی لینک، کاربران به راحتی به ابزار دسترسی پیدا میکنند و محاسبات خود را انجام میدهند. 13 | 14 | ## استفاده آنلاین 15 | 16 | برای استفاده از مبدل، کافیست روی لینک زیر کلیک کنید: 17 | 18 | [استفاده از مبدل پهنای باند و حجم دانلود](https://dev-ir.github.io/bandwidth-calculations/) 19 | 20 | ## مشارکت 21 | 22 | اگر تمایل به مشارکت در این پروژه دارید: 23 | 24 | 1. مخزن پروژه را Fork کنید. 25 | 2. تغییرات مورد نظرتان را در یک شاخه جدید اعمال کنید. 26 | 3. Pull Request بفرستید تا بررسی شود. 27 | 28 | ## 📧 کانال تلگرام ما 29 | 30 | https://t.me/+EpErnDsDPhw3ZThk 31 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | function calculateDownload(speedGbps, days) { 2 | const speedBytesPerSecond = (speedGbps * 1e9) / 8; 3 | const secondsPerDay = 86400; 4 | const bytesPerDay = speedBytesPerSecond * secondsPerDay; 5 | const totalBytes = bytesPerDay * days; 6 | const totalTerabytes = totalBytes / 1e12; 7 | return Math.round(totalTerabytes); 8 | } 9 | 10 | function calculateSpeed(dataTB, days) { 11 | const totalBytes = dataTB * 1e12; 12 | const secondsPerDay = 86400; 13 | const totalSeconds = days * secondsPerDay; 14 | const speedBytesPerSecond = totalBytes / totalSeconds; 15 | const speedGbps = (speedBytesPerSecond * 8) / 1e9; 16 | return speedGbps; 17 | } 18 | 19 | function formatSpeed(speedGbps) { 20 | if (speedGbps >= 1) { 21 | return `${speedGbps.toFixed(2)} گیگابیت بر ثانیه`; 22 | } else { 23 | const speedMbps = speedGbps * 1000; 24 | return `${speedMbps.toFixed(2)} مگابیت بر ثانیه`; 25 | } 26 | } 27 | 28 | document.getElementById('downloadForm').addEventListener('submit', function (event) { 29 | event.preventDefault(); 30 | const speed = parseFloat(document.getElementById('speed').value); 31 | const days = parseInt(document.getElementById('days').value, 10); 32 | const result = calculateDownload(speed, days); 33 | document.getElementById('result').textContent = `در ${days} روز با سرعت ${speed} گیگابیت بر ثانیه، شما میتوانید تقریبا ${result} ترابایت داده دانلود کنید.`; 34 | }); 35 | 36 | document.getElementById('speedForm').addEventListener('submit', function (event) { 37 | event.preventDefault(); 38 | const data = parseFloat(document.getElementById('data').value); 39 | const days = parseInt(document.getElementById('daysForSpeed').value, 10); 40 | const resultSpeedGbps = calculateSpeed(data, days); 41 | const formattedSpeed = formatSpeed(resultSpeedGbps); 42 | 43 | document.getElementById('result').textContent = `برای دانلود ${data} ترابایت داده در ${days} روز، شما نیاز به پهنای باند ${formattedSpeed} دارید.`; 44 | }); 45 | 46 | document.getElementById('switchToSpeedForm').addEventListener('click', function () { 47 | document.getElementById('form-container').classList.add('d-none'); 48 | document.getElementById('speedFormContainer').classList.remove('d-none'); 49 | }); 50 | 51 | document.getElementById('switchToDownloadForm').addEventListener('click', function () { 52 | document.getElementById('speedFormContainer').classList.add('d-none'); 53 | document.getElementById('form-container').classList.remove('d-none'); 54 | }); -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 |