我在使用星期幾查找日期方面存在問題。使用星期幾獲取日期
例如:我有過去的日期可以說,
Date date= Convert.TodateTime("01/08/2013");
2013年1月8日日星期幾是星期二。
現在我想要本週的星期二的日期。我如何做到這一點。
注意:過去的日期是動態的。它會在每個循環中改變。
我在使用星期幾查找日期方面存在問題。使用星期幾獲取日期
例如:我有過去的日期可以說,
Date date= Convert.TodateTime("01/08/2013");
2013年1月8日日星期幾是星期二。
現在我想要本週的星期二的日期。我如何做到這一點。
注意:過去的日期是動態的。它會在每個循環中改變。
可以使用枚舉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();
你是對的史蒂夫......它的工作。謝謝 :) – PaRsH 2013-04-08 09:37:14
我可能有點遲到了,但我的解決方案很相似:
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();
}
只是一個想法:如果你已經是在正確的天,你可以添加星期,日期,而在同一天入住。因此,請在該日期前添加幾周,直到您抵達當週。 – 2013-04-08 09:18:25
是的。有沒有內置的方法可以做到這一點/ – PaRsH 2013-04-08 09:19:36
'DateTime.AddDays(7)'是一個添加一個星期的選項。您可以將週數乘以7並添加它。請參閱[MSDN](http://msdn.microsoft.com/en-us/library/system.datetime.adddays(v = vs.100).aspx)。 – 2013-04-08 09:21:24