C# 使用星期几获取日期
我在使用星期几查找日期时遇到问题 比如说,我已经过了约会C# 使用星期几获取日期,c#,.net,datetime,datetime-format,C#,.net,Datetime,Datetime Format,我在使用星期几查找日期时遇到问题 比如说,我已经过了约会 Date date= Convert.TodateTime("01/08/2013"); 2013年1月8日一周的第二天是星期二 现在我要本周的星期二。我怎么能做到 注意:过去的日期是动态的。它将在每个循环中更改。您可以使用枚举 DayOfWeek枚举表示日历中的一周中的某一天 每周七天。此字段中常量的值 枚举范围从星期天到星期六。如果 强制转换为整数,其值范围为零(表示 星期天)到六点(表示星期六) 我们可以使用到整数的转换来计算与同
Date date= Convert.TodateTime("01/08/2013");
2013年1月8日一周的第二天是星期二
现在我要本周的星期二。我怎么能做到
注意:过去的日期是动态的。它将在每个循环中更改。您可以使用枚举 DayOfWeek枚举表示日历中的一周中的某一天 每周七天。此字段中常量的值 枚举范围从星期天到星期六。如果 强制转换为整数,其值范围为零(表示 星期天)到六点(表示星期六) 我们可以使用到整数的转换来计算与同一周的当前日期的差值
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();
}
只是想一想:如果你已经在正确的一天,你可以在这一天再加上几周,同时保持在同一天。因此,在日期上添加周数,直到到达当前周为止。是的。是否有任何内置方法可以做到这一点/
DateTime.AddDays(7)
是添加一周的选项。你可以把周数乘以7再加上。看,嘿,约翰,我得把它循环一下。有什么捷径吗?史蒂夫下面的答案可能是获得这个结果的最短途径。