/// <summary> /// 轉型為數值。 /// </summary> /// <param name="value">要轉型的值。</param> public static object CNum(object value) { // Null 傳回 0 if (IsNull(value)) { return(0); } // 針對文字型別做處理 if (value is string) { // 空字串傳回 0 if (StrFunc.StrIsEmpty(value)) { return(0); } // 若為數值先轉型為 Double 型別,防止有小數點無法轉型為整數 if (BaseFunc.IsNumeric(value)) { value = Convert.ToDouble(value); } } if (!BaseFunc.IsNumeric(value)) { throw new Exception(value + " 無法轉型為數值"); } return(value); }
/// <summary> /// 轉換為 DateTime 型別。 /// </summary> /// <param name="date">日期字串。</param> /// <param name="time">時間字串。</param> public static DateTime ToDateTime(string date, string time) { string sValue; string sTime; sTime = time; // 若時間是四碼或六碼數值,則加上時間冒號 if (BaseFunc.IsNumeric(sTime)) { if (StrFunc.StrLen(sTime) == 4) { sTime = StrFunc.StrFormat("{0}:{1}", StrFunc.StrLeft(sTime, 2), StrFunc.StrSubstring(sTime, 2, 2)); } else if (StrFunc.StrLen(sTime) == 6) { sTime = StrFunc.StrFormat("{0}:{1}:{2}", StrFunc.StrLeft(sTime, 2), StrFunc.StrSubstring(sTime, 2, 2), StrFunc.StrSubstring(sTime, 4, 2)); } } sValue = StrFunc.StrFormat("{0} {1}", date, sTime); if (IsDate(sValue)) { return(BaseFunc.CDateTime(sValue)); } else { return(DateTime.MinValue); } }