Option Explicit On
Option Strict On
Friend Class TemperatureConv
Private m_Celsius As Decimal
Private m_Delisle As Decimal
Private m_Fahrenheit As Decimal
Private m_Kelvin As Decimal
Private m_Newton As Decimal
Private m_Rankine As Decimal
Private m_Réaumur As Decimal
Private m_Rømer As Decimal
Friend Sub New()
Call ClearVars()
End Sub
Private Sub ClearVars()
m_Celsius = 0D
m_Delisle = 0D
m_Fahrenheit = 0D
m_Kelvin = 0D
m_Newton = 0D
m_Rankine = 0D
m_Réaumur = 0D
m_Rømer = 0D
End Sub
Friend Enum TemperatureTypes
Celsius = 0
Delisle = 1
Fahrenheit = 2
Kelvin = 3
Newton = 4
Rankine = 5
Réaumur = 6
Rømer = 7
End Enum
Friend Sub CalcTemps(ByVal Temp As Decimal, ByVal TemperatureType As TemperatureTypes)
Call ClearVars()
Select Case TemperatureType
Case TemperatureTypes.Celsius
m_Celsius = Temp
m_Delisle = CDec((100 - Temp) * 3 / 2)
m_Fahrenheit = CDec(Temp * 9 / 5 + 32)
m_Kelvin = CDec(Temp + 273.15)
m_Newton = CDec(Temp * (33 / 100))
m_Rankine = CDec(Temp * 9 / 5 + 491.67)
m_Réaumur = CDec(Temp * 4 / 5)
m_Rømer = CDec(Temp * 21 / 40 + 7.5)
Case TemperatureTypes.Delisle
m_Celsius = CDec((100 - Temp) * (2 / 3))
m_Delisle = Temp
m_Fahrenheit = CDec((212 - Temp) * (6 / 5))
m_Kelvin = CDec((373.15 - Temp) * (2 / 3))
m_Newton = CDec((33 - Temp) * (11 / 50))
m_Rankine = CDec((671.67 - Temp) * (6 / 5))
m_Réaumur = CDec((80 - Temp) * (8 / 15))
m_Rømer = CDec((60 - Temp) * (7 / 20))
Case TemperatureTypes.Fahrenheit
m_Celsius = CDec((Temp - 32) * (5 / 9))
m_Delisle = CDec((212 - Temp) * (5 / 6))
m_Fahrenheit = Temp
m_Kelvin = CDec((Temp + 459.67) * (5 / 9))
m_Newton = CDec((Temp - 32) * (11 / 60))
m_Rankine = CDec(Temp + 459.67)
m_Réaumur = CDec((Temp - 32) * (4 / 9))
m_Rømer = CDec((Temp - 32) * (7 / 24) + 7.5)
Case TemperatureTypes.Kelvin
m_Celsius = CDec(Temp - 273.15)
m_Delisle = CDec((373.15 - Temp) * (3 / 2))
m_Fahrenheit = CDec(Temp * (9 / 5) - 459.67)
m_Kelvin = Temp
m_Newton = CDec((Temp - 273.15) * (33 / 100))
m_Rankine = CDec(Temp * (9 / 5))
m_Réaumur = CDec((Temp - 273.15) * (4 / 5))
m_Rømer = CDec((Temp - 273.15) * (21 / 40) + 7.5)
Case TemperatureTypes.Newton
m_Celsius = CDec(Temp - (100 / 33))
m_Delisle = CDec((33 - Temp) * (50 / 11))
m_Fahrenheit = CDec(Temp * (60 / 11) + 32)
m_Kelvin = CDec(Temp * (100 / 33) + 273.15)
m_Newton = Temp
m_Rankine = CDec(Temp * (60 / 11) + 491.67)
m_Réaumur = CDec(Temp * (80 / 33))
m_Rømer = CDec(Temp * (35 / 22) + 7.5)
Case TemperatureTypes.Rankine
m_Celsius = CDec((Temp * (5 / 9)) - 273.15)
m_Delisle = CDec((671.67 - Temp) * (5 / 6))
m_Fahrenheit = CDec(Temp - 459.67)
m_Kelvin = CDec(Temp * (5 / 9))
m_Newton = CDec((Temp - 491.67) * (11 / 60))
m_Rankine = Temp
m_Réaumur = CDec((Temp * (5 / 9) - 273.15) * (4 / 5))
m_Rømer = CDec((Temp - 491.67) * (7 / 24) + 7.5)
Case TemperatureTypes.Réaumur
m_Celsius = CDec(Temp * (5 / 4))
m_Delisle = CDec((80 - Temp) * (15 / 8))
m_Fahrenheit = CDec(Temp * (9 / 4) + 32)
m_Kelvin = CDec(Temp * (5 / 4) + 273.15)
m_Newton = CDec(Temp * (33 / 80))
m_Rankine = CDec(Temp * (9 / 4) + 491.67)
m_Réaumur = Temp
m_Rømer = CDec(Temp * (21 / 32) + 7.5)
Case TemperatureTypes.Rømer
m_Celsius = CDec((Temp - 7.5) * (40 / 21))
m_Delisle = CDec((60 - Temp) * (20 / 7))
m_Fahrenheit = CDec((Temp - 7.5) * (24 / 7) + 32)
m_Kelvin = CDec((Temp - 7.5) * (40 / 21) + 273.15)
m_Newton = CDec((Temp - 7.5) * (22 / 35))
m_Rankine = CDec((Temp - 7.5) * (24 / 7) + 491.67)
m_Réaumur = CDec((Temp - 7.5) * (32 / 21))
m_Rømer = Temp
End Select
End Sub
Friend ReadOnly Property Celsius() As Decimal
Get
Return m_Celsius
End Get
End Property
Friend ReadOnly Property Delisle() As Decimal
Get
Return m_Delisle
End Get
End Property
Friend ReadOnly Property Fahrenheit() As Decimal
Get
Return m_Fahrenheit
End Get
End Property
Friend ReadOnly Property Kelvin() As Decimal
Get
Return m_Kelvin
End Get
End Property
Friend ReadOnly Property Newton() As Decimal
Get
Return m_Newton
End Get
End Property
Friend ReadOnly Property Rankine() As Decimal
Get
Return m_Rankine
End Get
End Property
Friend ReadOnly Property Réaumur() As Decimal
Get
Return m_Réaumur
End Get
End Property
Friend ReadOnly Property Rømer() As Decimal
Get
Return m_Rømer
End Get
End Property
End Class