C#獲取周的第一天、最後一天、月第一天和最後一天

 

獲取今天的開始時間和結束時間

 

            DateTime start = DateTime.Today;
            DateTime End = DateTime.Today.AddDays(86399F / 86400);

 

 

            string start = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
            string end = DateTime.Now.ToString("yyyy-MM-dd")+" 23:59:59";

            string start = DateTime.Now.ToString("yyyyMMdd") + " 00:00:00";
            string end = DateTime.Now.ToString("yyyyMMdd") + " 23:59:59";

 

 

public class DateTimeTool
    {

        /// <summary>  
        /// 獲取指定日期所在周的第一天,星期一爲第一天  
        /// </summary>  
        /// <param name="dateTime"></param>  
        /// <returns></returns>  
        public static DateTime GetDateTimeWeekFirstDayMon(DateTime dateTime)
        {
            DateTime firstWeekDay = DateTime.Now;

            try
            {
                int weeknow = Convert.ToInt32(dateTime.DayOfWeek);

                //星期一爲第一天,weeknow等於0時,要向前推6天。     
                weeknow = (weeknow == 0 ? (7 - 1) : (weeknow - 1));

                int daydiff = (-1) * weeknow;

                firstWeekDay = dateTime.AddDays(daydiff);
            }
            catch { }

            return firstWeekDay;
        }

        /// <summary>  
        /// 獲取指定日期所在周的最後一天,星期天爲最後一天  
        /// </summary>  
        /// <param name="dateTime"></param>  
        /// <returns></returns>  

        public static DateTime GetDateTimeWeekLastDaySun(DateTime dateTime)
        {
            DateTime lastWeekDay = DateTime.Now;

            try
            {
                int weeknow = Convert.ToInt32(dateTime.DayOfWeek);

                weeknow = (weeknow == 0 ? 7 : weeknow);

                int daydiff = (7 - weeknow);

                lastWeekDay = dateTime.AddDays(daydiff);
            }
            catch { }

            return lastWeekDay;
        }



        /// <summary>  
        /// 獲取指定日期的月份第一天  
        /// </summary>  
        /// <param name="dateTime"></param>  
        /// <returns></returns>  
        public static DateTime GetDateTimeMonthFirstDay(DateTime dateTime)
        {
            if (dateTime == null)
            {
                dateTime = DateTime.Now;
            }

            return new DateTime(dateTime.Year, dateTime.Month, 1);
        }


        /// <summary>  
        /// 獲取指定月份最後一天  
        /// </summary>  
        /// <param name="dateTime"></param>  
        /// <returns></returns>  
        public static DateTime GetDateTimeMonthLastDay(DateTime dateTime)
        {
            int day = DateTime.DaysInMonth(dateTime.Year, dateTime.Month);

            return new DateTime(dateTime.Year, dateTime.Month, day);
        }













        /// <summary>  
        /// 獲取指定日期所在周的第一天,星期天爲第一天  
        /// </summary>  
        /// <param name="dateTime"></param>  
        /// <returns></returns>  
        public static DateTime GetDateTimeWeekFirstDaySun(DateTime dateTime)
        {
            DateTime firstWeekDay = DateTime.Now;

            try
            {
                //得到是星期幾,然後從當前日期減去相應天數   
                int weeknow = Convert.ToInt32(dateTime.DayOfWeek);

                int daydiff = (-1) * weeknow;

                firstWeekDay = dateTime.AddDays(daydiff);
            }
            catch { }

            return firstWeekDay;
        }

        /// <summary>  
        /// 獲取指定日期所在周的最後一天,星期六爲最後一天  
        /// </summary>  
        /// <param name="dateTime"></param>  
        /// <returns></returns>  
        public static DateTime GetDateTimeWeekLastDaySat(DateTime dateTime)
        {
            DateTime lastWeekDay = DateTime.Now;

            try
            {
                int weeknow = Convert.ToInt32(dateTime.DayOfWeek);

                int daydiff = (7 - weeknow) - 1;

                lastWeekDay = dateTime.AddDays(daydiff);

            }
            catch { }

            return lastWeekDay;
        }

}

 

 

獲取當前時間的本週、本月、本季、本年的開始和結束時間

namespace ConsoleApp1
{
    public enum DataTimeType
    {
        Week,
        Month,
        Season,
        Year
    }
    public class DataTimeManager
    {
        /// <summary>
        /// 獲取開始時間
        /// </summary>
        /// <param name="type"></param>
        /// <param name="time"></param>
        /// <returns></returns>
        public static DateTime GetTimeStartByType(DataTimeType type, DateTime time)
        {
            switch (type)
            {
                case DataTimeType.Week:
                    return time.AddDays(-(int)time.DayOfWeek + 1);
                case DataTimeType.Month:
                    return time.AddDays(-(int)time.Day + 1);
                case DataTimeType.Season:
                    var time1 = time.AddMonths(0 - ((time.Month - 1) % 3));
                    return time1.AddDays(-time1.Day + 1);
                case DataTimeType.Year:
                    return time.AddDays(-(int)time.DayOfYear + 1);
                default:
                    return time.AddDays(-(int)time.DayOfWeek + 1);
                    //return null;
            }
        }

        /// <summary>
        /// 獲取結束時間
        /// </summary>
        /// <param name="DataTimeType">Week、Month、Season、Year</param>
        /// <param name="now"></param>
        /// <returns></returns>
        public static DateTime GetTimeEndByType(DataTimeType type, DateTime now)
        {
            switch (type)
            {
                case DataTimeType.Week:
                    return now.AddDays(7 - (int)now.DayOfWeek);
                case DataTimeType.Month:
                    return now.AddMonths(1).AddDays(-now.AddMonths(1).Day + 1).AddDays(-1);
                case DataTimeType.Season:
                    var time = now.AddMonths((3 - ((now.Month - 1) % 3) - 1));
                    return time.AddMonths(1).AddDays(-time.AddMonths(1).Day + 1).AddDays(-1);
                case DataTimeType.Year:
                    var time2 = now.AddYears(1);
                    return time2.AddDays(-time2.DayOfYear);
                default:
                    return now.AddDays(7 - (int)now.DayOfWeek);
            }
        }



    }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DateTime dt=DateTime.Now; 
int weeknow = Convert.ToInt32(DateTime.Now.DayOfWeek); 
int dayspan = (-1) * weeknow + 1; 
DateTime dt2=dt.AddMonths(1); 
//獲取本週第一天  
this.Label1.Text = DateTime.Now.AddDays(dayspan).ToString("yyyy-MM-dd"); 
//本月第一天  
this.Label1.Text = dt.AddDays(-(dt.Day) + 1).ToString("yyyy-MM-dd"); 
//本月最後一天  
this.Label1.Text = dt2.AddDays(-dt.Day).ToString("yyyy-MM-dd"); 
//上個月第一天  
this.Label1.Text = dt.AddMonths(-1).AddDays(-dt.Day+1).ToString("yyyy-MM-dd"); 
//上個月最後一天  
this.Label1.Text = dt.AddDays(-dt.Day).ToString("yyyy-MM-dd"); 
//上一年第一天  
this.Label1.Text = dt.AddYears(-1).AddMonths(-dt.Month+1).AddDays(-dt.Day+1).ToString("yyyy-MM-dd"); 
//上一年最後一天  
this.Label1.Text = dt.AddMonths(-dt.Month + 1).AddDays(-dt.Day).ToString("yyyy-MM-dd"); 
//本年第一天  
this.Label1.Text = dt.AddMonths(-dt.Month + 1).AddDays(-dt.Day+1).ToString("yyyy-MM-dd"); 
//上週第一天  
this.Label1.Text = DateTime.Now.AddDays(daydiff-7).ToString("yyyy-MM-dd"); 
//上週最後一天  
this.Label1.Text = DateTime.Now.AddDays(daydiff - 1).ToString("yyyy-MM-dd"); 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章