[转]温度管理类
在网上看到这样一个类,觉得挺有收藏意义的,可能以后会用到,就拿出来分享了,呵呵。
1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
5
namespace MyW3C.MyWeather.Core
6
{
7
/// <summary>
8
/// 温度管理类
9
/// </summary>
10
class TemperatureManager
11
{
12
public enum Unit { C, F, R, K };
13
14
/// <summary>
15
/// 温度换算
16
/// </summary>
17
/// <PARAM name="srcT">源温度
18
/// <PARAM name="srcUnit">源温度单位
19
/// <PARAM name="desUnit">目标温度单位
20
/// <returns>目标温度</returns>
21
public static int Converte(int t, Unit srcUnit, Unit desUnit)
22
{
23
return (int)Converte((double)t, 0, srcUnit, desUnit);
24
}
25
26
/// <summary>
27
/// 温度换算
28
/// </summary>
29
/// <PARAM name="srcT">源温度
30
/// <PARAM name="definition">精确度
31
/// <PARAM name="srcUnit">源温度单位
32
/// <PARAM name="desUnit">目标温度单位
33
/// <returns>目标温度</returns>
34
public static double Converte(double srcT, int definition, Unit srcUnit, Unit desUnit)
35
{
36
// 温度换算公式
37
//┏━━━━━━━━┯━━━━━━━┯━━━━━━━┯━━━━━━━━┓
38
//┃ 摄氏度℃ │ 华氏度℉ │兰金 ① 度° R│ 开尔文 K ┃
39
//┣━━━━━━━━┿━━━━━━━┿━━━━━━━┿━━━━━━━━┫
40
//┃ ℃ │ 9/5 ℃ +32 │9/5 ℃ +491.67│ ℃ + 273.15 ②┃
41
//┠────────┼───────┼───────┼────────┨
42
//┃ 5/9( ℉ -32) │ ℉ │℉ +459.67 │5/9( ℉ +459.67)┃
43
//┠────────┼───────┼───────┼────────┨
44
//┃5/9 (°R-491.67)│ °R-459.67 │ ° R │ 5/9 °R ┃
45
//┠────────┼───────┼───────┼────────┨
46
//┃ K-273.15 ② │ 9/5 K-459.67│ 9/5K │ K ┃
47
//┗━━━━━━━━┷━━━━━━━┷━━━━━━━┷━━━━━━━━┛
48
//1、原文是 Rankine 。
49
//2、摄氏温度的标定是以水的冰点为一个参照点作为 0 ℃,相对于开尔文温度上的 273.15K 。
50
// 开尔文温度的标定是以水的三相点为一个参照点作为 273.16K ,相对于摄氏 0.01 ℃,即水的三相点高于水的冰点 0.01 ℃。
51
52
double desT = 0;
53
54
温标转化
101
102
return Math.Round(desT, definition);
103
}
104
105
}
106
}
using System; 2
using System.Collections.Generic; 3
using System.Text; 4
5
namespace MyW3C.MyWeather.Core 6
{ 7
/// <summary> 8
/// 温度管理类 9
/// </summary> 10
class TemperatureManager 11
{ 12
public enum Unit { C, F, R, K }; 13
14
/// <summary> 15
/// 温度换算 16
/// </summary> 17
/// <PARAM name="srcT">源温度 18
/// <PARAM name="srcUnit">源温度单位 19
/// <PARAM name="desUnit">目标温度单位 20
/// <returns>目标温度</returns> 21
public static int Converte(int t, Unit srcUnit, Unit desUnit) 22
{ 23
return (int)Converte((double)t, 0, srcUnit, desUnit); 24
} 25
26
/// <summary> 27
/// 温度换算 28
/// </summary> 29
/// <PARAM name="srcT">源温度 30
/// <PARAM name="definition">精确度 31
/// <PARAM name="srcUnit">源温度单位 32
/// <PARAM name="desUnit">目标温度单位 33
/// <returns>目标温度</returns> 34
public static double Converte(double srcT, int definition, Unit srcUnit, Unit desUnit) 35
{ 36
// 温度换算公式 37
//┏━━━━━━━━┯━━━━━━━┯━━━━━━━┯━━━━━━━━┓ 38
//┃ 摄氏度℃ │ 华氏度℉ │兰金 ① 度° R│ 开尔文 K ┃ 39
//┣━━━━━━━━┿━━━━━━━┿━━━━━━━┿━━━━━━━━┫ 40
//┃ ℃ │ 9/5 ℃ +32 │9/5 ℃ +491.67│ ℃ + 273.15 ②┃ 41
//┠────────┼───────┼───────┼────────┨ 42
//┃ 5/9( ℉ -32) │ ℉ │℉ +459.67 │5/9( ℉ +459.67)┃ 43
//┠────────┼───────┼───────┼────────┨ 44
//┃5/9 (°R-491.67)│ °R-459.67 │ ° R │ 5/9 °R ┃ 45
//┠────────┼───────┼───────┼────────┨ 46
//┃ K-273.15 ② │ 9/5 K-459.67│ 9/5K │ K ┃ 47
//┗━━━━━━━━┷━━━━━━━┷━━━━━━━┷━━━━━━━━┛ 48
//1、原文是 Rankine 。 49
//2、摄氏温度的标定是以水的冰点为一个参照点作为 0 ℃,相对于开尔文温度上的 273.15K 。 50
// 开尔文温度的标定是以水的三相点为一个参照点作为 273.16K ,相对于摄氏 0.01 ℃,即水的三相点高于水的冰点 0.01 ℃。 51
52
double desT = 0; 53
54
温标转化 101
102
return Math.Round(desT, definition); 103
} 104
105
} 106
}


浙公网安备 33010602011771号