namespace Yw.WinFrmUI.Phart.Unit
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public class UnitQHelper : IUnitHelper
|
{
|
#region 静态
|
|
public static double Convert(eUnitQ fromUnit, eUnitQ toUnit, double fromValue)
|
{
|
if (fromUnit == toUnit)
|
return fromValue;
|
double m = toM3H(fromUnit, fromValue);
|
return fromM3H(toUnit, m);
|
}
|
|
public static string GetCnUnitName(eUnitQ unit)
|
{
|
switch (unit)
|
{
|
case eUnitQ.LS: return "升/秒";
|
case eUnitQ.M3H: return "立方米/小时";
|
case eUnitQ.M3M: return "立方米/分钟";
|
case eUnitQ.M3Ss: return "立方米/秒";
|
default: return string.Empty;
|
}
|
|
}
|
|
public static List<string> GetCnUnitNameList()
|
{
|
var list = new List<string>();
|
foreach (eUnitQ item in Enum.GetValues(typeof(eUnitQ)))
|
{
|
list.Add(GetCnUnitName(item));
|
}
|
return list;
|
}
|
|
public static Dictionary<eUnitQ, string> GetCnUnitDict()
|
{
|
var dic = new Dictionary<eUnitQ, string>();
|
foreach (eUnitQ item in Enum.GetValues(typeof(eUnitQ)))
|
{
|
dic.Add(item, GetCnUnitName(item));
|
}
|
return dic;
|
}
|
|
public static string GetEnUnitName(eUnitQ unit)
|
{
|
switch (unit)
|
{
|
case eUnitQ.LS: return "L/s";
|
case eUnitQ.M3H: return "m³/h";
|
case eUnitQ.M3M: return "m³/min";
|
case eUnitQ.M3Ss: return "m³/s";
|
case eUnitQ.USGalMin:
|
return "us.gpm";
|
case eUnitQ.Ft3H:
|
return "ft³/h";
|
case eUnitQ.Ft3Min:
|
return "ft³/min";
|
case eUnitQ.LMIN:
|
return "L/min";
|
case eUnitQ.USGalHour:
|
return "us.gal/hour";
|
case eUnitQ.LH:
|
return "L/h";
|
default: return string.Empty;
|
}
|
}
|
|
|
|
|
public static List<string> GetEnUnitNameList()
|
{
|
var list = new List<string>();
|
foreach (eUnitQ item in Enum.GetValues(typeof(eUnitQ)))
|
{
|
list.Add(GetEnUnitName(item));
|
}
|
return list;
|
}
|
|
|
|
|
public static Dictionary<eUnitQ, string> GetEnUnitDict()
|
{
|
var dic = new Dictionary<eUnitQ, string>();
|
foreach (eUnitQ item in Enum.GetValues(typeof(eUnitQ)))
|
{
|
dic.Add(item, GetEnUnitName(item));
|
}
|
return dic;
|
}
|
|
|
public static CoefficientAxis fromM3H(eUnitQ unit)
|
{
|
switch (unit)
|
{
|
case eUnitQ.LS:
|
return M3HtoLS_calc;
|
case eUnitQ.M3H:
|
return constantAxis;
|
//case eUnitQ.M3Min:
|
// return M3HtoM3Min_calc;
|
//case eUnitQ.LmpGalMin:
|
// return M3HtoLmpGalMin_calc;
|
case eUnitQ.USGalMin:
|
return M3HtoUSGalMin_calc;
|
case eUnitQ.Ft3H:
|
return M3HtoFt3H_calc;
|
case eUnitQ.Ft3Min:
|
return M3HtoFt3Min_calc;
|
case eUnitQ.M3Ss:
|
return M3HtoM3S_calc;
|
case eUnitQ.LMIN:
|
return M3HtoLMIN_calc;
|
case eUnitQ.USGalHour:
|
return M3HtoUSGalHour_calc;
|
case eUnitQ.LH:
|
return M3HtoLH_calc;
|
default:
|
return constantAxis;
|
}
|
|
}
|
|
public static CoefficientAxis toM3H(eUnitQ unit)
|
{
|
switch (unit)
|
{
|
case eUnitQ.LS:
|
return LStoM3H_calc;
|
case eUnitQ.M3H:
|
return constantAxis;
|
case eUnitQ.M3M:
|
// return M3MintoM3H_calc;
|
//case eUnitQ.LmpGalMin:
|
return LmpGalMintoM3H_calc;
|
case eUnitQ.USGalMin:
|
return USGalMintoM3H_calc;
|
case eUnitQ.Ft3H:
|
return Ft3HtoM3H_calc;
|
case eUnitQ.Ft3Min:
|
return Ft3MintoM3H_calc;
|
case eUnitQ.M3Ss:
|
return M3StoM3H_calc;
|
case eUnitQ.LMIN:
|
return LMINtoM3H_calc;
|
case eUnitQ.USGalHour:
|
return USGalHourtoM3H_calc;
|
case eUnitQ.LH:
|
return LHtoM3H_calc;
|
default:
|
return constantAxis;
|
}
|
}
|
|
public static double fromM3H(eUnitQ unit, double value)
|
{
|
switch (unit)
|
{
|
case eUnitQ.LS:
|
return M3HtoLS_calc.Calc(value);
|
case eUnitQ.M3H:
|
return value;
|
case eUnitQ.M3M:
|
return M3HtoM3Min_calc.Calc(value);
|
case eUnitQ.USGalMin:
|
return M3HtoUSGalMin_calc.Calc(value);
|
case eUnitQ.Ft3H:
|
return M3HtoFt3H_calc.Calc(value);
|
case eUnitQ.Ft3Min:
|
return M3HtoFt3Min_calc.Calc(value);
|
case eUnitQ.M3Ss:
|
return M3HtoM3S_calc.Calc(value);
|
case eUnitQ.LMIN:
|
return M3HtoLMIN_calc.Calc(value);
|
case eUnitQ.USGalHour:
|
return M3HtoUSGalHour_calc.Calc(value);
|
case eUnitQ.LH:
|
return M3HtoLH_calc.Calc(value);
|
default:
|
return value;
|
}
|
}
|
|
public static double toM3H(eUnitQ unit, double value)
|
{
|
switch (unit)
|
{
|
case eUnitQ.LS:
|
return LStoM3H_calc.Calc(value);
|
case eUnitQ.M3H:
|
return value;
|
case eUnitQ.M3M:
|
return M3MintoM3H_calc.Calc(value);
|
|
case eUnitQ.USGalMin:
|
return USGalMintoM3H_calc.Calc(value);
|
case eUnitQ.Ft3H:
|
return Ft3HtoM3H_calc.Calc(value);
|
case eUnitQ.Ft3Min:
|
return Ft3MintoM3H_calc.Calc(value);
|
case eUnitQ.M3Ss:
|
return M3StoM3H_calc.Calc(value);
|
case eUnitQ.LMIN:
|
return LMINtoM3H_calc.Calc(value);
|
case eUnitQ.USGalHour:
|
return USGalHourtoM3H_calc.Calc(value);
|
case eUnitQ.LH:
|
return LHtoM3H_calc.Calc(value);
|
default:
|
return value;
|
}
|
}
|
|
|
#endregion
|
|
//
|
static CoefficientAxis constantAxis = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(1.0);
|
|
static CoefficientAxis LStoM3H_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(3.6);
|
static CoefficientAxis M3HtoLS_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(1.0 / 3.6);
|
|
static CoefficientAxis M3MintoM3H_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(60.0);
|
static CoefficientAxis M3HtoM3Min_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(1.0 / 60.0);
|
|
static CoefficientAxis M3StoM3H_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(3600.0);
|
static CoefficientAxis M3HtoM3S_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(1.0 / 3600.0);
|
|
static CoefficientAxis LmpGalMintoM3H_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(0.27279);
|
static CoefficientAxis M3HtoLmpGalMin_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(1.0 / 0.27279);
|
|
static CoefficientAxis USGalMintoM3H_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(0.2271);
|
static CoefficientAxis M3HtoUSGalMin_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(1.0 / 0.2271);
|
|
static CoefficientAxis USGalHourtoM3H_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(0.2271 / 60);
|
static CoefficientAxis M3HtoUSGalHour_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(60.0 / 0.2271);
|
|
static CoefficientAxis USGalMintoLH_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(0.2271 * 1000);
|
static CoefficientAxis LHtoUSGalMin_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(1 / (0.2271 * 1000));
|
|
static CoefficientAxis Ft3HtoM3H_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(0.02832);
|
static CoefficientAxis M3HtoFt3H_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(1.0 / 0.02832);
|
|
static CoefficientAxis Ft3MintoM3H_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(1.6992);
|
static CoefficientAxis M3HtoFt3Min_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(1.0 / 1.6992);
|
|
static CoefficientAxis LMINtoM3H_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(0.06);
|
static CoefficientAxis M3HtoLMIN_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(1.0 / 0.06);
|
|
static CoefficientAxis LHtoM3H_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(0.001);
|
static CoefficientAxis M3HtoLH_calc = new Yw.WinFrmUI.Phart.Unit.CoefficientAxis(1.0 / 1000);
|
|
|
#region 显示接口
|
|
|
double IUnitHelper.Convert(int fromUnit, int toUnit, double fromValue)
|
{
|
return Convert((eUnitQ)fromUnit, (eUnitQ)toUnit, fromValue);
|
}
|
|
string IUnitHelper.GetCnUnitName(int unit)
|
{
|
return GetCnUnitName((eUnitQ)unit);
|
}
|
|
List<string> IUnitHelper.GetCnUnitNameList()
|
{
|
return GetCnUnitNameList();
|
}
|
|
Dictionary<int, string> IUnitHelper.GetCnUnitDict()
|
{
|
var dic = new Dictionary<int, string>();
|
foreach (var item in GetCnUnitDict())
|
{
|
dic.Add((int)item.Key, item.Value);
|
}
|
return dic;
|
}
|
|
string IUnitHelper.GetEnUnitName(int unit)
|
{
|
return GetEnUnitName((eUnitQ)unit);
|
}
|
|
List<string> IUnitHelper.GetEnUnitNameList()
|
{
|
return GetEnUnitNameList();
|
}
|
|
Dictionary<int, string> IUnitHelper.GetEnUnitDict()
|
{
|
var dic = new Dictionary<int, string>();
|
foreach (var item in GetEnUnitDict())
|
{
|
dic.Add((int)item.Key, item.Value);
|
}
|
return dic;
|
}
|
|
|
#endregion
|
|
}
|
}
|