使用星期几获取日期

我在使用星期几查找日期时遇到问题。

例如:我有过去约会可以说,

Date date= Convert.TodateTime("01/08/2013"); 

2013年1月8日星期二是星期二。

现在我想要本周的星期二约会。 我怎么做

注意:过去的日期是动态的。 它会在每个循环中发生变化。

您可以使用枚举DayOfWeek

DayOfWeek枚举表示每周七天的日历中的星期几。 此枚举中常量的值范围从DayOfWeek.Sunday到DayOfWeek.Saturday。 如果强制转换为整数,则其值的范围从零(表示DayOfWeek.Sunday)到六(表示DayOfWeek.Saturday)。

我们可以使用转换为整数来计算与同一工作日当前日期的差异

 DateTime dtOld = new DateTime(2013,1,8); int num = (int)dtOld.DayOfWeek; int num2 = (int)DateTime.Today.DayOfWeek; DateTime result = DateTime.Today.AddDays(num - num2); 

这似乎也适合创建扩展方法

 public static class DateTimeExtensions { public static DateTime EquivalentWeekDay(this DateTime dtOld) { int num = (int)dtOld.DayOfWeek; int num2 = (int)DateTime.Today.DayOfWeek; return DateTime.Today.AddDays(num - num2); } } 

现在你可以用它来调用它

 DateTime weekDay = Convert.ToDateTime("01/08/2013").EquivalentWeekDay(); 

我可能有点迟到了,但我的解决方案非常相似:

 DateTime.Today.AddDays(-(int)(DateTime.Today.DayOfWeek - DayOfWeek.Tuesday)); 

这将是当周的星期二,其中发现星期二是主要目标(我可能误解了这个问题)。

你可以用这….

 public static void Main() { //current date DateTime dt = DateTime.UtcNow.AddHours(6); //you can use it custom date var cmYear = new DateTime(dt.Year, dt.Month, dt.Day); //here 2 is the day value of the week in a date var customDateWeek = cmYear.AddDays(-2); Console.WriteLine(dt); Console.WriteLine(cmYear); Console.WriteLine("Date: " + customDateWeek); Console.WriteLine(); Console.ReadKey(); }