可以說,我有兩個日期訂單日期 - 2014年1月1日和交貨日期 - 6/2/2014。現在,如果我想計算其採取的工作週數(訂單日期 - 交貨日期),我該如何在c#中完成工作。如何從兩個日期獲得工作周
回答
我認爲「多少工作日」意味着「多少工作日」。這不是很直接,因爲它取決於文化,你需要考慮假期。
如果通過週五作爲工作日內,您可以使用類似於在c# DateTime to Add/Subtract Working Days討論,從Order Date
每天計數到Delivery Date
對於該條件成立的解決方案依賴於週一
那QA仍然留給你如何確定某個地區的假期的問題(被警告 - 在瑞士的每個地區都有不同的假期!)。
更新:從Nagaraj建議的鏈接據我瞭解,你也可能指的是「周」爲塊(即「它是如何許多每週工作採取」)。如果是這樣,反過來,你將需要如何定義一個星期的許多天,必須採取採取一週考慮......
(int)((DeliveryDate-OrderDate).TotalDays/7)
但是這會給出1.8或1.9種結果 – Gulrej
@Gulrej您必須用Math.Round或Math對它進行四捨五入。天花板 –
我猜你不感興趣的工作日內,但周。您可以使用GetWeekOfYear:
編輯
要回應註釋,這裏的一些代碼示例:
int start = System.Globalization.CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(new DateTime(2014, 1, 14), System.Globalization.CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
int end = System.Globalization.CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(new DateTime(2014, 2, 3), System.Globalization.CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
int weeks = end - start;
這應該給你所需要的星期。
儘管此鏈接可能會回答問題,但最好在此處包含答案的基本部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 –
@dTDesign沒有想到微軟可能會更改地址的可能性 - 你完全相信。我會記住未來的答案 – toATwork
我正在使用字符串並將其轉換爲日期,因爲我不確定在哪裏獲取日期和以何種形式。相應地調整您的代碼。
string orderDate = @"1/1/2014";
string deliveryDate = @"6/2/2014";
// This will give you a total number of days that passed between the two dates.
double daysPassed = Convert.ToDateTime(deliveryDate).
Subtract(Convert.ToDateTime(orderDate)).TotalDays;
// Use this if you want actual weeks. This will give you a double approximate. Change to it to an integer round it off (truncate it).
double weeksPassed = daysPassed/7;
// Use this if you want to get an approximate number of work days in those weeks (based on 5 days a week schedule).
double workDaysPassed = weeksPassed * 5;
如果你想的工作日的日期範圍內的號碼,你可以使用這個:
var from = DateTime.Today.AddDays(-10);
var to = DateTime.Today;
var daysOfWeek = new DayOfWeek[] { DayOfWeek.Monday, DayOfWeek.Tuesday
, DayOfWeek.Wednesday, DayOfWeek.Friday
, DayOfWeek.Thursday };
var days = Enumerable.Range(0, 1 + to.Subtract(from).Days)
.Select((n, i) => from.AddDays(i).DayOfWeek)
.Where(n => daysOfWeek.Contains(n.DayOfWeek));
如果你想有一個日期範圍內的週數,使用:
(int)((to - from).TotalDays/7)
哇,這是一個絕妙的解決方案!我正在寫這篇文章。我已經測試過它,它的功能就像一個魅力。 –
- 1. 從兩個日期獲取周jQuery
- 2. 得到工作日和週末的計數從給出兩個日期在PHP
- 3. sqHow如何根據兩個日期獲得每週總和值?
- 4. 無法從工作日獲得日期
- 5. 日期()獲得3個工作日前?
- 6. 從星期一到星期日獲取當週工作日
- 7. 如何獲得每週日期
- 8. 如何獲得下週日期在JavaScript
- 9. 如何獲得下週的日期?
- 10. 如何獲得兩個日期
- 11. 如何獲得兩個日期
- 12. 如何獲得從下一個星期日結束的周
- 13. 如何從Rundeck工作取得日期
- 14. 在本週前兩週的特定工作日創建日期
- 15. 獲得兩個日期
- 16. 如何在兩個日期之間獲得工作日或小時
- 17. 如何獲得兩個日期之間工作日的斯卡拉
- 18. 如何在java中的兩個日期之間獲得除週末或週六或週日外的每一天?
- 19. 如何獲得特定一週中特定日期的日期
- 20. pl sql如何獲得一週的日期爲oracle db日期
- 21. 如何獲得兩個日期之間的日期?
- 22. 只在兩個日期之間獲得週末
- 23. 從apache鑽取日期的一週獲得的日期
- 24. 從數據庫獲得兩個日期之間的日期
- 25. 如何從週一獲得的數據到今天的日期
- 26. 如何獲得下一個工作日,不包括週末和節假日
- 27. 如何獲得VBA(展望2010)中的工作周和日期編號?
- 28. 如何在VB(Outlook 2010)中獲得工作周和日期編號?
- 29. 如何獲得原圖和週期 - JQuery的 - 一起工作?
- 30. 如何獲得本週的5個日期與PHP或jQuery的?
提供更多詳情。你如何存儲日期?你已經嘗試了什麼? – rebeliagamer
http://stackoverflow.com/questions/4604199/how-to-calculate-number-of-weeks-given-2-dates –
我已經嘗試過這樣 - (Delivary date - Order date).TotalDays/7。而我將輸出存儲爲int – Gulrej