Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
            }
        }