C# DayOfWeek獲取上周,本周,下周(周一到周日)


1.DayOfWeek是從周日到周六的順序,即枚舉值是從0到6;周日:0 周一:1......

2.怎么根據當前日期算出上周:

var ss = DateTime.Now.AddDays(0 - Convert.ToInt16(DateTime.Now.DayOfWeek) - 7).ToString("yyyy-MM-dd");//上周日
var ssss= DateTime.Now.AddDays(6 - Convert.ToInt16(DateTime.Now.DayOfWeek) - 7).ToString("yyyy-MM-dd");//上周六

所以要想知道上周一到上周日的數據,即每個都加+1天即可

var ssss = DateTime.Now.AddDays(0 - Convert.ToInt16(DateTime.Now.DayOfWeek) - 7+1).ToString("yyyy-MM-dd");//上周一
var sssss= DateTime.Now.AddDays(6 - Convert.ToInt16(DateTime.Now.DayOfWeek) - 7+1).ToString("yyyy-MM-dd");//上周日

網上還有另外一種寫法取上周的數據:

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((-7 - m)).ToString("yyyy-MM-dd");
var Sun = date.AddDays((-7 - s)).ToString("yyyy-MM-dd");
Console.WriteLine(Mon);
Console.WriteLine(Sun);

3.本周數據

DateTime.Now.AddDays(0 - Convert.ToInt16(DateTime.Now.DayOfWeek)+1)

DateTime.Now.AddDays(6 - Convert.ToInt16(DateTime.Now.DayOfWeek)+1)

4.下周數據

DateTime.Now.AddDays(0 - Convert.ToInt16(DateTime.Now.DayOfWeek) + 7+1)

DateTime.Now.AddDays(6 - Convert.ToInt16(DateTime.Now.DayOfWeek) + 7+1)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM