using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Core.StlMes.Client.Sale.Util { public class ConverObject { private static string _defaultDataTimeFormt = "yyyyMMddHHmmss"; public static string ConvertDataTimeToString(DateTime value) { if(value == null || value.ToString().Length == 0) return ""; return value.ToString(_defaultDataTimeFormt); } /// /// 将System.DateTime日期改为sql 认可的to_date /// /// /// public static string GetTimeStringValueToDateFunction(System.DateTime value) { return string.Format("to_date('{0}','yyyymmddhh24miss')", Util.ConverObject.ConvertDataTimeToString(value)); } /// /// 将DateTime 类型转为sql 可以比较的类型 /// /// /// public static string ConvertDateTimeValueToDbLanguage(DateTime dt) { return string.Format(" trunc( to_date('{0}','yyyymmdd'))", dt.ToString("yyyyMMdd")); } /// /// 将DateTime 类型转为sql 可以比较的类型 /// /// /// /// /// public static string ConvertDateTimeValueToDbLanguage(string columnName, DateTime beginDate, DateTime endDate) { return string.Format(" and {0} >= trunc( to_date('{1}','yyyymmdd')) and {0} < trunc( to_date('{2}','yyyymmdd')) + 1 ", columnName, beginDate.ToString("yyyyMMdd"), endDate.ToString("yyyyMMdd")); } public static string ConverDateTimeToyyyyMMdd(DateTime time) { return time.ToString("yyyyMMdd"); } public static string ConvertListStringValueToSqlCondition(string columnName,List list) { if (list == null || list.Count == 0) return " and 1 = 2 "; System.Text.StringBuilder sb = new StringBuilder(); foreach (String s in list) { sb.Append(string.Format(" {0} = '{1}' ",columnName,s)).Append(" or "); } string sqlCondition = " and (" + sb.ToString() + " 1 = 2 )"; return sqlCondition; } public static string ConvertNumberToChinese(string strNum) { string[] Nums = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; string[] Digits = { "", "拾", "佰", "仟" }; string[] Units = { "元", "万", "亿", "万亿" }; string x, y, z = ""; if (strNum.Length > 2) { x = strNum.Substring(0, strNum.Length - 2); y = strNum.Substring(strNum.Length - 2, 2); } else { x = ""; y = strNum; } if (y.Length == 2) { int n = Convert.ToInt32(y.Substring(0, 1)); z = Nums[n] + "角"; } if (y.Length > 0) { int n = Convert.ToInt32(y.Substring(y.Length - 1, 1)); z += Nums[n] + "分"; } if (y.Length == 0) { if (x.Length == 0) z = "零元整"; else z = "整"; } string S = ""; //返回值 int p = 0; //字符位置指针 int m = x.Length % 4; //取模 // 四位一组得到组数 int k = (m > 0 ? x.Length / 4 + 1 : x.Length / 4); // 外层循环在所有组中循环 // 从左到右 高位到低位 四位一组 逐组处理 // 每组最后加上一个单位: "[万亿]","[亿]","[万]" for (int i = k; i > 0; i--) { int L = 4; if (i == k && m != 0) { L = m; } // 得到一组四位数 最高位组有可能不足四位 string s = x.Substring(p, L); int l = s.Length; // 内层循环在该组中的每一位数上循环 从左到右 高位到低位 for (int j = 0; j < l; j++) { //处理改组中的每一位数加上所在位: "仟","佰","拾",""(个) int n = Convert.ToInt32(s.Substring(j, 1)); if (n == 0) { if (j < l - 1 && Convert.ToInt32(s.Substring(j + 1, 1)) > 0 //后一位(右低) && !S.EndsWith(Nums[n])) { S += Nums[n]; } } else { //处理 1013 一千零"十三", 1113 一千一百"一十三" if (!(n == 1 && (S.EndsWith(Nums[0]) | S.Length == 0) && j == l - 2)) { S += Nums[n]; } S += Digits[l - j - 1]; } } p += L; // 每组最后加上一个单位: [万],[亿] 等 if (i < k) //不是最高位的一组 { if (Convert.ToInt32(s) != 0) { //如果所有 4 位不全是 0 则加上单位 [万],[亿] 等 S += Units[i - 1]; } } else { //处理最高位的一组,最后必须加上单位 S += Units[i - 1]; } } return S + z; } public static double ConvertToDouble(object value) { try { return Convert.ToDouble(value); } catch { return 0; } } } }