我在使用星期几查找日期时遇到问题。
例如:我有过去的日期可以说,
Date date= Convert.TodateTime("01/08/2013");
2013 年 1 月 8 日 一周中的一天是星期二。
现在我想要本周的星期二日期。我怎么能做到。
注意:过去的日期是动态的。它会在每个循环中改变。
我在使用星期几查找日期时遇到问题。
例如:我有过去的日期可以说,
Date date= Convert.TodateTime("01/08/2013");
2013 年 1 月 8 日 一周中的一天是星期二。
现在我想要本周的星期二日期。我怎么能做到。
注意:过去的日期是动态的。它会在每个循环中改变。
您可以使用枚举DayOfWeek
DayOfWeek 枚举表示每周有 7 天的日历中的星期几。此枚举中常量的值范围从 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();
}