回答
只需設置你想在開始日期DateTime
,然後不斷增加14天:
所以到4/13後得到每隔五到今年年底:
DateTime dt = new DateTime(2012, 04, 13);
while (dt.Year == 2012)
{
Console.WriteLine(dt.ToString());
dt = dt.AddDays(14);
}
評論後更多信息:
如果你想在最近的備用週五自2012/04/13,你可以計算現在和2012/04/13之間的天數,採取的是由14所得的餘數,並從今天的日期減去那麼多天:
DateTime baseDate = new DateTime(2012, 04, 13);
DateTime today = DateTime.Today;
int days = (int)(today - baseDate).TotalDays;
int rem = days % 14;
DateTime mostRecentAlternateFriday = today.AddDays(-rem);
你的回答非常棒!謝謝! – Ram 2012-04-17 19:17:01
您可以輕鬆地進行,會給你一套週五的生成方法:
public IEnumerable<DateTime> GetAlternatingFridaysStartingFrom(DateTime startDate)
{
DateTime tempDate = new DateTime(startDate.year, startDate.Month, startDate.Day);
if(tempDate.DayOfWeek != DayOfWeek.Friday)
{
// Math may be off, do some testing
tempDate = tempDate.AddDays((7 - ((int)DayOfWeek.Friday - (int)tempDate.DayOfWeek) % 7);
}
while(true)
{
yield return tempDate;
tempDate = tempDate.AddDays(14);
}
}
然後,只需使用一些LINQ來確定你是多麼想:
var numberOfFridays = GetAlternatingFridaysStartingFrom(DateTime.Today).Take(10);
DateTime是一個結構體,因此它的值被複制了,不需要臨時日期;你可以使用參數; If你需要一個新的變量,只是爲了一個不同的名字,只需將startDate賦值給TempDate並且它會執行一個深層次的複製。另外,更可讀的方式來到下一個星期五'while(tempDate不是星期五)tempDate.AddDays (1)「表現不盡如人意,但它仍然是不變的,所以誰在乎。 – Servy 2012-04-17 19:06:30
潛在的,但有人可以通過日期時間與分鐘和秒的信息,我不想複製該向前。這樣,您只需獲得XX/YY/ZZ 00:00.000日期時間。 – Tejs 2012-04-17 19:08:09
你可以使用'Date'屬性。 'tempDate = startDate.Date'然後它使代碼中的意圖更清晰。 – Servy 2012-04-17 19:10:11
爲什麼你需要一個存儲過程?
如果你的日期是星期五,爲什麼不在循環中使用AddDays(14)
?
如果你想從一個起始日期查找最近的週五,只要使用此:
while(date.DayOfWeek != DayOfWeek.Friday)
{
date.AddDays(1);
}
然後用14天的循環得到所有其他星期五。
您可以創建簡單的方法,將列舉出來,像這樣:如果你需要知道一個給定數量的日期
DateTime startingDate = DateTime.Parse("2012-04-13");
foreach (var date in GetAlternatingWeekDay(startingDate).Take(10))
{
Console.WriteLine(date.ToString("R"));
}
或者,:
public static IEnumerable<DateTime> GetAlternatingWeekDay(DateTime startingDate)
{
for (int i = 1; ; i++)
{
yield return startingDate.AddDays(14*i);
}
}
,你可以這樣調用的周,你可以使用這樣的代碼:
DateTime date = DateTime.Parse("2012-04-13").AddDays(7 * numberOfWeeks);
- 1. 獲取從給定日期星期一到星期五的星期日期
- 2. 使用系統日期獲取星期一 - 星期五
- 3. 如何獲取星期五與星期五作爲開始日期使用mysql
- 4. 獲取兩個日期之間的每個星期五的數據
- 5. 如何在每個星期五使用mysql獲取每個星期六到星期四的數據
- 6. C#獲取下一個第N個星期五日期從今天的日期
- 7. 獲取最近一個星期五的日期SQL
- 8. 使用jquery在javascript中獲取星期五的日期
- 9. 選擇日期這個星期一和這個星期五之間的日期
- 10. 在PHP中獲取所有星期五的日期
- 11. SQL Server 2012-星期日期星期六到星期五
- 12. TSQL從「種子」日期確定每隔一個星期五
- 13. 查找每個星期五從開始日期到年底
- 14. 星期五開始「星期五」,php
- 15. 獲取該年度每個星期四的日期Javascript
- 16. 獲取指定日期的星期日
- 17. 獲取星期數從一個星期的日期開始
- 18. PHP獲取這個星期的日期星期一
- 19. 獲取星期五開始的星期列表
- 20. Momentjs - 獲取最近的星期五
- 21. 星期五日期後選擇
- 22. 無法比較星期五日期JavaScript
- 23. 獲取基於給定日期的星期一至星期日
- 24. 使用星期幾獲取日期
- 25. 使用星期幾獲取日期
- 26. 從星期五開始插入每週日期
- 27. 計算每個星期的日期
- 28. 在SQL中使用今天的日期獲取星期日期(星期一)
- 29. 日期算法來獲得4個星期一進取,上週五
- 30. 獲取每個日期SSRS
這將是一個非常長的sproc參數.. – 2012-04-17 18:54:33
那麼你想從4/13/12還是從最近的星期五?以及你希望結束的日期是......? – 2012-04-17 18:55:00
date.AddDays(14) – scottheckel 2012-04-17 18:58:16