假设我有两个日期订单日期-2014年1月1日和交货日期2014年6月2日。现在,如果我想要计算一周的工作量(订单日期-交货日期),我如何在c#中完成。
发布于 2014-02-06 16:58:54
如果您想要某个日期范围内的工作天数,您可以使用以下命令:
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)发布于 2014-02-06 16:47:45
我假设你所说的“每周工作时间”是指“每天工作多少天”。这不是那么简单,因为它取决于文化,你需要考虑假日。
如果您依赖于从星期一到星期五的工作日,您可以使用类似于c# DateTime to Add/Subtract Working Days中讨论的解决方案,在条件成立的情况下从Order Date计算到Delivery Date的每一天。
问答仍然给你留下了如何确定某个地区的假日的问题(请注意-在瑞士,这个国家的每个地区都有不同的假日!)。
更新:来自Nagaraj的建议链接我猜你可能也会将"weeks“称为chunks (即”它花费了多少工作周“)。如果是这样,反过来,您将需要定义一周中必须使用多少天才能将一周考虑在内……
发布于 2014-02-06 16:48:00
(int)((DeliveryDate-OrderDate).TotalDays/7)https://stackoverflow.com/questions/21597792
复制相似问题