[转]温度管理类

在网上看到这样一个类,觉得挺有收藏意义的,可能以后会用到,就拿出来分享了,呵呵。
  1using System;   
  2using System.Collections.Generic;   
  3using System.Text;   
  4  
  5namespace 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}
  
posted @ 2007-07-24 19:06  东明  阅读(149)  评论(0)    收藏  举报