C# 日期处理

  public class ConvertToDatetime
    {/// <summary>
     /// 将日期格式转换为数字格式,如2008-1-1 变为20080101
     /// </summary>
     /// <param name="date"></param>
     /// <returns></returns>
        public static string ConvertDateToNumber(DateTime date)
        {
            try
            {
                string number = date.Year.ToString();
                int month = date.Month;
                int day = date.Day;
                if (month < 10)
                {
                    number = number + "0" + month.ToString().Trim();
                }
                else
                {
                    number = number + month.ToString().Trim();
                }
                if (day < 10)
                {
                    number = number + "0" + day.ToString().Trim();
                }
                else
                {
                    number = number + day.ToString().Trim();
                }
                return number;

            }
            catch
            {
                return String.Empty;
            }
        }
        public static string ConvertNumberToDate(string number)
        {
            if (string.IsNullOrEmpty(number) || number.Length != 8) return string.Empty;
            number = number.Substring(0, 4) + "-" + number.Substring(4, 2) + "-" + number.Substring(6);
            return number;
        }
        /// <summary>
        /// 把数字转换为时间格式,如 090020=09:20
        /// </summary>
        /// <param name="number"></param>
        /// <returns></returns>
        public static string ConvertTimeToDate(string number)
        {
            if (number.Length == 0) return string.Empty;
            number = number.Substring(0, 2) + ":" + number.Substring(4, 2);
            return number;
        }
        public static string GetStartDateString(DateTime date)
        {
            string startDateString = ConvertDateToNumber(date);
            startDateString = startDateString.Substring(0, 6) + "01";
            return startDateString;
        }
        public static string GetStartDateStringN(DateTime date)
        {
            string startDateString = ConvertDateToNumber(date);

            return startDateString;
        }

        /// <summary>
        /// 获取当月第一天
        /// </summary>
        /// <returns></returns>
        public static string GetCurrentMonthFirstDay()
        {
            DateTime dt = DateTime.Now;
            string month = dt.Month.ToString().Length < 2 ? "0" + dt.Month.ToString() : dt.Month.ToString();
            return dt.Year + "-" + month + "-" + "01";
        }
        /// <summary>
        /// 获取当月第一天
        /// </summary>
        /// <returns></returns>
        public static string GetCurrentMonthFirstDay(DateTime dt)
        {
            string month = dt.Month.ToString().Length < 2 ? "0" + dt.Month.ToString() : dt.Month.ToString();
            return dt.Year + "-" + month + "-" + "01";
        }
        /// <summary>
        /// 获取前几个月第一天
        /// </summary>
        /// <returns></returns>
        public static string GetLastMonthFirstDay(int num)
        {
            int curyear = DateTime.Now.Year;
            int curMonth = DateTime.Now.Month;
            int lastMonth, lastYear;
            if (curMonth - num <= 0)
            {
                lastMonth = 12 + (curMonth - num);
                lastYear = curyear - 1;
                return lastYear + "-" + lastMonth + "-01";
            }
            else
            {
                lastMonth = curMonth - num;
                return curyear + "-" + lastMonth + "-01";
            }
        }
        /// <summary>
        /// 获取当月
        /// </summary>
        /// <returns></returns>
        public static string GetCurrentMonth()
        {
            DateTime dt = DateTime.Now;
            string month = dt.Month.ToString().Length < 2 ? "0" + dt.Month.ToString() : dt.Month.ToString();
            return dt.Year + "-" + month;
        }
        /// <summary>
        /// 获取当月最后一天
        /// </summary>
        /// <returns></returns>
        public static string GetCurrentMonthLastDay()
        {
            DateTime dt = DateTime.Now;
            string str = GetEndDateString(dt);
            return str.Substring(0, 4) + "-" + str.Substring(4, 2) + "-" + str.Substring(6, 2);
        }
        /// <summary>
        /// 获取当月最后一天
        /// </summary>
        /// <returns></returns>
        public static string GetCurrentMonthLastDay(DateTime dt)
        {
            string str = GetEndDateString(dt);
            return str.Substring(0, 4) + "-" + str.Substring(4, 2) + "-" + str.Substring(6, 2);
        }
        public static string GetEndDateString(DateTime date)
        {
            string endDateString = ConvertDateToNumber(date);
            string day = "";
            if (date.Month == 1 || date.Month == 3 || date.Month == 5 || date.Month == 7 || date.Month == 8 || date.Month == 10 || date.Month == 12)
            {
                day = "31";
            }
            else
            {
                if (date.Month == 4 || date.Month == 6 || date.Month == 9 || date.Month == 11)
                {
                    day = "30";
                }
                else
                {
                    if ((date.Year % 4 == 0 && date.Year % 100 != 0) || date.Year % 400 == 0)
                    {
                        day = "29";
                    }
                    else
                    {
                        day = "28";
                    }
                }

            }
            endDateString = endDateString.Substring(0, 6).Trim() + day.Trim();
            return endDateString;
        }
        //去掉了截取字符串
        public static string GetEndDateStringN(DateTime date)
        {
            string endDateString = ConvertDateToNumber(date);


            return endDateString;
        }

        /// <summary>
        /// 返回年月日格式
        /// </summary>
        /// <param name="date"></param>
        /// <returns></returns>
        public static string ConvertDateToChineseDate(DateTime date)
        {
            return (date.Year.ToString() + "" + date.Month.ToString() + "" + date.Day.ToString().Trim() + "");
        }
        /// <summary>
        /// 时间为空时返回 空 
        /// </summary>
        /// <param name="Time"></param>
        /// <returns></returns>
        public static string GetDateTime(string Time)
        {
            if (Time.ToString() == "")
            {
                return "";
            }
            return ConvertDateToNumber(Convert.ToDateTime(Time));
        }

        /// <summary>
        /// 时钟控件初始化开始日期值
        /// </summary>
        /// <returns></returns>
        public static string InitStartDateString()
        {
            return (string.Format("{0}-01-01", DateTime.Now.Year.ToString()));
        }

        /// <summary>
        /// 时钟控件初始化结束日期值
        /// </summary>
        /// <returns></returns>
        public static string InitEndDateString()
        {
            return (string.Format("{0}-12-31", DateTime.Now.Year.ToString()));
        }

        /// <summary>
        /// 最小日期
        /// </summary>
        public static string MinNumDate
        {
            get
            {
                return "19000101";
            }
        }

        /// <summary>
        /// 最大日期
        /// </summary>
        public static string MaxNumDate
        {
            get
            {
                return "99991231";
            }
        }
        /// <summary>
        /// 当前日期
        /// </summary>
        /// <returns></returns>
        public static string InitCurrentDateString()
        {
            return (DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-" + DateTime.Now.Day.ToString());
        }

    }

 

  public class ConvertToDatetime
    {/// <summary>
     /// 将日期格式转换为数字格式,如2008-1-1 变为20080101
     /// </summary>
     /// <param name="date"></param>
     /// <returns></returns>
        public static string ConvertDateToNumber(DateTime date)
        {
            try
            {
                string number = date.Year.ToString();
                int month = date.Month;
                int day = date.Day;
                if (month < 10)
                {
                    number = number + "0" + month.ToString().Trim();
                }
                else
                {
                    number = number + month.ToString().Trim();
                }
                if (day < 10)
                {
                    number = number + "0" + day.ToString().Trim();
                }
                else
                {
                    number = number + day.ToString().Trim();
                }
                return number;

            }
            catch
            {
                return String.Empty;
            }
        }
        public static string ConvertNumberToDate(string number)
        {
            if (string.IsNullOrEmpty(number) || number.Length != 8) return string.Empty;
            number = number.Substring(0, 4) + "-" + number.Substring(4, 2) + "-" + number.Substring(6);
            return number;
        }
        /// <summary>
        /// 把数字转换为时间格式,如 090020=09:20
        /// </summary>
        /// <param name="number"></param>
        /// <returns></returns>
        public static string ConvertTimeToDate(string number)
        {
            if (number.Length == 0) return string.Empty;
            number = number.Substring(0, 2) + ":" + number.Substring(4, 2);
            return number;
        }
        public static string GetStartDateString(DateTime date)
        {
            string startDateString = ConvertDateToNumber(date);
            startDateString = startDateString.Substring(0, 6) + "01";
            return startDateString;
        }
        public static string GetStartDateStringN(DateTime date)
        {
            string startDateString = ConvertDateToNumber(date);

            return startDateString;
        }

        /// <summary>
        /// 获取当月第一天
        /// </summary>
        /// <returns></returns>
        public static string GetCurrentMonthFirstDay()
        {
            DateTime dt = DateTime.Now;
            string month = dt.Month.ToString().Length < 2 ? "0" + dt.Month.ToString() : dt.Month.ToString();
            return dt.Year + "-" + month + "-" + "01";
        }
        /// <summary>
        /// 获取当月第一天
        /// </summary>
        /// <returns></returns>
        public static string GetCurrentMonthFirstDay(DateTime dt)
        {
            string month = dt.Month.ToString().Length < 2 ? "0" + dt.Month.ToString() : dt.Month.ToString();
            return dt.Year + "-" + month + "-" + "01";
        }
        /// <summary>
        /// 获取前几个月第一天
        /// </summary>
        /// <returns></returns>
        public static string GetLastMonthFirstDay(int num)
        {
            int curyear = DateTime.Now.Year;
            int curMonth = DateTime.Now.Month;
            int lastMonth, lastYear;
            if (curMonth - num <= 0)
            {
                lastMonth = 12 + (curMonth - num);
                lastYear = curyear - 1;
                return lastYear + "-" + lastMonth + "-01";
            }
            else
            {
                lastMonth = curMonth - num;
                return curyear + "-" + lastMonth + "-01";
            }
        }
        /// <summary>
        /// 获取当月
        /// </summary>
        /// <returns></returns>
        public static string GetCurrentMonth()
        {
            DateTime dt = DateTime.Now;
            string month = dt.Month.ToString().Length < 2 ? "0" + dt.Month.ToString() : dt.Month.ToString();
            return dt.Year + "-" + month;
        }
        /// <summary>
        /// 获取当月最后一天
        /// </summary>
        /// <returns></returns>
        public static string GetCurrentMonthLastDay()
        {
            DateTime dt = DateTime.Now;
            string str = GetEndDateString(dt);
            return str.Substring(0, 4) + "-" + str.Substring(4, 2) + "-" + str.Substring(6, 2);
        }
        /// <summary>
        /// 获取当月最后一天
        /// </summary>
        /// <returns></returns>
        public static string GetCurrentMonthLastDay(DateTime dt)
        {
            string str = GetEndDateString(dt);
            return str.Substring(0, 4) + "-" + str.Substring(4, 2) + "-" + str.Substring(6, 2);
        }
        public static string GetEndDateString(DateTime date)
        {
            string endDateString = ConvertDateToNumber(date);
            string day = "";
            if (date.Month == 1 || date.Month == 3 || date.Month == 5 || date.Month == 7 || date.Month == 8 || date.Month == 10 || date.Month == 12)
            {
                day = "31";
            }
            else
            {
                if (date.Month == 4 || date.Month == 6 || date.Month == 9 || date.Month == 11)
                {
                    day = "30";
                }
                else
                {
                    if ((date.Year % 4 == 0 && date.Year % 100 != 0) || date.Year % 400 == 0)
                    {
                        day = "29";
                    }
                    else
                    {
                        day = "28";
                    }
                }

            }
            endDateString = endDateString.Substring(0, 6).Trim() + day.Trim();
            return endDateString;
        }
        //去掉了截取字符串
        public static string GetEndDateStringN(DateTime date)
        {
            string endDateString = ConvertDateToNumber(date);


            return endDateString;
        }

        /// <summary>
        /// 返回年月日格式
        /// </summary>
        /// <param name="date"></param>
        /// <returns></returns>
        public static string ConvertDateToChineseDate(DateTime date)
        {
            return (date.Year.ToString() + "年" + date.Month.ToString() + "月" + date.Day.ToString().Trim() + "日");
        }
        /// <summary>
        /// 时间为空时返回 空
        /// </summary>
        /// <param name="Time"></param>
        /// <returns></returns>
        public static string GetDateTime(string Time)
        {
            if (Time.ToString() == "")
            {
                return "";
            }
            return ConvertDateToNumber(Convert.ToDateTime(Time));
        }

        /// <summary>
        /// 时钟控件初始化开始日期值
        /// </summary>
        /// <returns></returns>
        public static string InitStartDateString()
        {
            return (string.Format("{0}-01-01", DateTime.Now.Year.ToString()));
        }

        /// <summary>
        /// 时钟控件初始化结束日期值
        /// </summary>
        /// <returns></returns>
        public static string InitEndDateString()
        {
            return (string.Format("{0}-12-31", DateTime.Now.Year.ToString()));
        }

        /// <summary>
        /// 最小日期
        /// </summary>
        public static string MinNumDate
        {
            get
            {
                return "19000101";
            }
        }

        /// <summary>
        /// 最大日期
        /// </summary>
        public static string MaxNumDate
        {
            get
            {
                return "99991231";
            }
        }
        /// <summary>
        /// 当前日期
        /// </summary>
        /// <returns></returns>
        public static string InitCurrentDateString()
        {
            return (DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-" + DateTime.Now.Day.ToString());
        }

    }

posted @ 2017-03-17 14:51  微笑代表淡定.Net  阅读(141)  评论(0)    收藏  举报