enum TempUnits
{
Kelvins = 0,
Celsius = 1,
Fahrenheit = 2
}
public double TempConverter(double InitialTemp, TempUnits ConvFrom, TempUnits ConvTo)
{
double Temp;
//First make sure they didnt enter same values for convert from & convert to
if (ConvFrom == ConvTo)
{
//Return initial value
Temp = InitialTemp;
}
else
{
try {
//Now decide what they want done
switch (ConvFrom) {
//Convert from Kelvins
case TempUnits.Kelvins:
//To Celsius
if (ConvTo == TempUnits.Celsius)
{
//Celsius = Kelvin - 273.15
Temp = InitialTemp - 273.15;
}
//To Fahrenheit
else if (ConvTo == TempUnits.Fahrenheit) {
Temp = (InitialTemp - 273.15) * 1.8 + 32.0;
}
break;
//Convert from Celsius
case TempUnits.Celsius:
//To Kelvins
if (ConvTo == TempUnits.Kelvins)
{
//Kelvin = Celsius + 273.15
Temp = InitialTemp + 273.15;
}
//To Fahrenheit
else if (ConvTo == TempUnits.Fahrenheit) {
//degree F = degree C x 1.8 + 32.
Temp = InitialTemp * 1.8 + 32.0;
}
break;
//Convert from Fahrenheit
case TempUnits.Fahrenheit:
//To Celsius
if (ConvTo == TempUnits.Celsius)
{
//degree C = (degree F - 32.) / 1.8
Temp = (InitialTemp - 32.0) / 1.8;
}
//To Kelvins
else if (ConvTo == TempUnits.Kelvins) {
Temp = ((InitialTemp - 32.0) / 1.8) + 273.15;
}
break;
}
}
catch (Exception ex) {
MessageBox.Show(ex.Message, "Conversion Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
Temp = 0;
}
}
return Temp;
}