C#获取当前时间的上周时间

    static void Main(string[] args)
        {
            //获取当前时间
            var date = DateTime.Now;
            var m = (date.DayOfWeek == DayOfWeek.Sunday ? (DayOfWeek)7 : date.DayOfWeek) - DayOfWeek.Monday;
            var s = (date.DayOfWeek == DayOfWeek.Sunday ? (DayOfWeek)7 : date.DayOfWeek) - (DayOfWeek)7;
            //本周一时间
            var Mon = date.AddDays((-m)).ToString("yyyy-MM-dd");
            //本周日时间
            var Sun = date.AddDays((-s)).ToString("yyyy-MM-dd");
            //上周一时间
            var Mon1 = date.AddDays((-7 - m)).ToString("yyyy-MM-dd");
            //上周日时间
            var Sun1 = date.AddDays((-7 - s)).ToString("yyyy-MM-dd");
            //上上周一时间
            var Mon2 = date.AddDays((-14 - m)).ToString("yyyy-MM-dd");
            //上上周日时间
            var Sun2 = date.AddDays((-14 - s)).ToString("yyyy-MM-dd");
            Console.WriteLine(m);
            Console.WriteLine(s);
            Console.WriteLine(Mon,GetWeekOfYear(Convert.ToDateTime(Mon)));
            Console.WriteLine(Sun);
            Console.WriteLine(Mon1,GetWeekOfYear(Convert.ToDateTime(Mon1)));
            Console.WriteLine(Sun1);
            Console.WriteLine(Mon2,GetWeekOfYear(Convert.ToDateTime(Mon2)));
            Console.WriteLine(Sun2);
        }
     //根据时间获取那年的第几周 
        public static int GetWeekOfYear(DateTime datetime)
        {
            //声明存储结果的变量
            int intWeekOfYear = 0;
            //获取该年1月1日的日期
            DateTime dtFirstDay = new DateTime(datetime.Year, 1, 1);
            //目标日期距离该年第一天的天数
            int intDaysCount = Convert.ToInt32((datetime - dtFirstDay).TotalDays);

            //目标日期距离该年第一周第一天的天数(sunday为0,monday为1)
            intDaysCount += Convert.ToInt32(dtFirstDay.DayOfWeek);
            //目标日期所在的周(此处做上取整运算)
            intWeekOfYear = int.Parse(Math.Ceiling(intDaysCount / 7.0).ToString());
            //返回计算结果
            return intWeekOfYear;

        }

 

posted @ 2021-04-22 11:37  StarFox  阅读(706)  评论(0编辑  收藏  举报