Esempio n. 1
0
        /// <summary>
        /// 将SmartDate实例与SmartDate实例、DateTime实例、string实例进行相等比较,
        /// 相等返回true.
        /// </summary>
        /// <param name="obj">要比较的对象</param>
        public override bool Equals(object obj)
        {
            //如果是与SmartDate实例比较
            if (obj is SmartDate)
            {
                //将要比较的对象转换为SmartDate
                SmartDate temp = (SmartDate)obj;

                if (this.IsEmpty && temp.IsEmpty)
                {
                    //如果两个实例都为空,返回true
                    return(true);
                }
                else
                {
                    //比较两个实例的DateTime值
                    return(this.Date.Equals(temp.Date));
                }
            }

            //如果是与DateTime实例进行比较
            if (obj is DateTime)
            {
                return(this.Date.Equals((DateTime)obj));
            }

            //如果是与字符串进行比较
            if (obj is string)
            {
                return(this.CompareTo(obj.ToString()) == 0);
            }

            return(false);
        }
Esempio n. 2
0
        /// <summary>
        /// 原始日期减去一个结束日期,返回一个时间间隔
        /// </summary>
        /// <param name="startTime">原始日期</param>
        /// <param name="finishTime">结束日期</param>
        public static TimeSpan operator -(DateTime startTime, SmartDate finishTime)
        {
            //将原始日期转成SmartDate类型
            SmartDate time = new SmartDate(startTime);

            return(time.Subtract(finishTime.Date));
        }
Esempio n. 3
0
 /// <summary>
 /// 比较当前日期与指定日期的大小。
 /// 如果相等则返回0;
 /// 如果当前日期大于指定日期,则返回1;
 /// 如果当前日期小于指定日期,则返回-1;
 /// </summary>
 /// <param name="value">要比较的日期</param>
 public int CompareTo(SmartDate value)
 {
     if (this.IsEmpty && value.IsEmpty)
     {
         return(0);
     }
     else
     {
         return(_date.CompareTo(value.Date));
     }
 }
Esempio n. 4
0
        /// <summary>
        /// 判断字符串是否能转换为一个SmartDate日期,并返回转换成功后的日期
        /// </summary>
        /// <param name="value">要转换的日期字符串</param>
        /// <param name="emptyValue">空日期的取值类型</param>
        /// <param name="result">返回转换成功后的日期</param>
        public static bool TryParse(string value, EmptyValue emptyValue, ref SmartDate result)
        {
            //定义用于存储日期字符串转换的DateTime日期
            DateTime dateResult = _minDate;

            //将日期字符串转换为DateTime日期
            if (TryStringToDate(value, emptyValue, ref dateResult))
            {
                //如果转换成功,则返回该日期的SmartDate类型
                result = new SmartDate(dateResult, emptyValue);

                return(true);
            }
            else
            {
                return(false);
            }
        }
Esempio n. 5
0
 /// <summary>
 /// 判断字符串是否能转换为一个SmartDate日期,并返回转换成功后的日期,
 /// 如果字符串为空,则返回一个最小日期。
 /// </summary>
 /// <param name="value">要转换的日期字符串</param>
 /// <param name="result">返回转换成功后的日期</param>
 public static bool TryParse(string value, ref SmartDate result)
 {
     return(TryParse(value, EmptyValue.MinDate, ref result));
 }
Esempio n. 6
0
 /// <summary>
 /// 比较当前日期与指定日期的大小。
 /// 如果相等则返回0;
 /// 如果当前日期大于指定日期,则返回1;
 /// 如果当前日期小于指定日期,则返回-1;
 /// </summary>
 /// <param name="value">要比较的日期</param>
 public int CompareTo(SmartDate value)
 {
     if (this.IsEmpty && value.IsEmpty)
     {
         return 0;
     }
     else
     {
         return _date.CompareTo(value.Date);
     }
 }
Esempio n. 7
0
        /// <summary>
        /// 判断字符串是否能转换为一个SmartDate日期,并返回转换成功后的日期
        /// </summary>
        /// <param name="value">要转换的日期字符串</param>
        /// <param name="emptyValue">空日期的取值类型</param>
        /// <param name="result">返回转换成功后的日期</param>        
        public static bool TryParse(string value, EmptyValue emptyValue, ref SmartDate result)
        {
            //定义用于存储日期字符串转换的DateTime日期
            DateTime dateResult = _minDate;

            //将日期字符串转换为DateTime日期
            if (TryStringToDate(value, emptyValue, ref dateResult))
            {
                //如果转换成功,则返回该日期的SmartDate类型
                result = new SmartDate(dateResult, emptyValue);

                return true;
            }
            else
            {
                return false;
            }
        }
Esempio n. 8
0
 /// <summary>
 /// 判断字符串是否能转换为一个SmartDate日期,并返回转换成功后的日期,
 /// 如果字符串为空,则返回一个最小日期。
 /// </summary>
 /// <param name="value">要转换的日期字符串</param>
 /// <param name="result">返回转换成功后的日期</param>        
 public static bool TryParse(string value, ref SmartDate result)
 {
     return TryParse(value, EmptyValue.MinDate, ref result);
 }
Esempio n. 9
0
        /// <summary>
        /// 原始日期减去一个结束日期,返回一个时间间隔
        /// </summary>
        /// <param name="startTime">原始日期</param>
        /// <param name="finishTime">结束日期</param>        
        public static TimeSpan operator -(DateTime startTime, SmartDate finishTime)
        {
            //将原始日期转成SmartDate类型
            SmartDate time = new SmartDate(startTime);

            return time.Subtract(finishTime.Date);
        }