New Tool: Data Transfer Rate Converter New Tool: Data Storage Units Converter (with MB, MiB and Mb) Fix #539 #785 #1160 #848 Data Storage Units Converter inspired by #948 by @utf26
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { type AllSupportedUnits, type BitsUnits, convertStorageAndRateUnits } from '../data-storage-unit-converter/data-storage-unit-converter.service';
 | |
| 
 | |
| export function transferTimeSeconds({
 | |
|   dataSize,
 | |
|   dataSizeUnit,
 | |
|   bitRate,
 | |
|   bitRateUnit,
 | |
| }: {
 | |
|   dataSize: number
 | |
|   dataSizeUnit: AllSupportedUnits
 | |
|   bitRate: number
 | |
|   bitRateUnit: BitsUnits
 | |
| }): number {
 | |
|   const dataSizeInBytes = convertStorageAndRateUnits({ value: dataSize, fromUnit: dataSizeUnit, toUnit: 'B' });
 | |
|   const bitRateInBytes = convertStorageAndRateUnits({ value: bitRate, fromUnit: bitRateUnit, toUnit: 'B' });
 | |
|   return bitRateInBytes > 0 ? dataSizeInBytes / bitRateInBytes : 0;
 | |
| }
 | |
| 
 | |
| export function neededRate({
 | |
|   dataSize,
 | |
|   dataSizeUnit,
 | |
|   hours,
 | |
|   minutes,
 | |
|   seconds,
 | |
|   bitRateUnit,
 | |
| }: {
 | |
|   dataSize: number
 | |
|   dataSizeUnit: AllSupportedUnits
 | |
|   hours: number
 | |
|   minutes: number
 | |
|   seconds: number
 | |
|   bitRateUnit: BitsUnits
 | |
| }): number {
 | |
|   const dataSizeInBits = convertStorageAndRateUnits({ value: dataSize, fromUnit: dataSizeUnit, toUnit: 'b' });
 | |
|   const timeInSeconds = hours * 3600 + minutes * 60 + seconds;
 | |
|   return convertStorageAndRateUnits({ value: timeInSeconds > 0 ? dataSizeInBits / timeInSeconds : 0, fromUnit: 'b', toUnit: bitRateUnit });
 | |
| }
 | |
| 
 | |
| export function amountTransferable({
 | |
|   bitRate,
 | |
|   bitRateUnit,
 | |
|   hours,
 | |
|   minutes,
 | |
|   seconds,
 | |
|   dataSizeUnit,
 | |
| }: {
 | |
|   bitRate: number
 | |
|   bitRateUnit: BitsUnits
 | |
|   hours: number
 | |
|   minutes: number
 | |
|   seconds: number
 | |
|   dataSizeUnit: AllSupportedUnits
 | |
| }): number {
 | |
|   const bitRateInBytes = convertStorageAndRateUnits({ value: bitRate, fromUnit: bitRateUnit, toUnit: 'B' });
 | |
|   const timeInSeconds = hours * 3600 + minutes * 60 + seconds;
 | |
|   return convertStorageAndRateUnits({ value: bitRateInBytes * timeInSeconds, fromUnit: 'B', toUnit: dataSizeUnit });
 | |
| }
 |