export const convertCelsiusToFahrenheit = (celsius: number) => {
return (celsius / 5) * 9 + 32;
};
export const convertFahrenheitToCelsius = (fahrenheit: number) => {
const celsius = ((fahrenheit - 32) / 9) * 5;
const isInteger = celsius % 1 === 0;
return isInteger ? celsius : Number(celsius.toFixed(2));
};
export const convertCelsiusToKelvin = (celsius: number) => {
return celsius + 273.15;
};
export const convertKelvinToCelsius = (kelvin: number) => {
const celsius = kelvin - 273.15;
const isInteger = celsius % 1 === 0;
return isInteger ? celsius : Number(celsius.toFixed(5));
};
export enum ThermometricUnit {
Celsius = "celsius",
Fahrenheit = "fahrenheit",
Kelvin = "kelvin",
}
export const calculateTemperatures = (
unit: ThermometricUnit,
value: number
) => {
switch (unit) {
case ThermometricUnit.Celsius:
return {
celsius: value,
fahrenheit: convertCelsiusToFahrenheit(value),
kelvin: convertCelsiusToKelvin(value),
};
case ThermometricUnit.Fahrenheit:
return {
celsius: convertFahrenheitToCelsius(value),
fahrenheit: value,
kelvin: convertCelsiusToKelvin(convertFahrenheitToCelsius(value)),
};
case ThermometricUnit.Kelvin:
return {
celsius: convertKelvinToCelsius(value),
fahrenheit: convertCelsiusToFahrenheit(convertKelvinToCelsius(value)),
kelvin: value,
};
}
};