Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 计算两个日期时间之间的周数的最有效方法_C#_Datetime - Fatal编程技术网

C# 计算两个日期时间之间的周数的最有效方法

C# 计算两个日期时间之间的周数的最有效方法,c#,datetime,C#,Datetime,正如tin上所说,我只需要最有效的方法来计算C#中两个日期之间的周数(即7天的跨度,而不是日历周)。获取天数并除以7 int weeks = (date1 - date2).TotalDays / 7; 您可能有最多6天的剩余时间,这将不包括在周数中。我假设您希望在日历的基础上获得此时间。为此,您需要System.Globalization DateTime date1 = DateTime.Now; DateTimeFormatInfo dinfo = DateTimeFormatInfo.

正如tin上所说,我只需要最有效的方法来计算C#中两个日期之间的周数(即7天的跨度,而不是日历周)。

获取天数并除以7

int weeks = (date1 - date2).TotalDays / 7;

您可能有最多6天的剩余时间,这将不包括在周数中。

我假设您希望在日历的基础上获得此时间。为此,您需要
System.Globalization

DateTime date1 = DateTime.Now;
DateTimeFormatInfo dinfo = DateTimeFormatInfo.CurrentInfo;
dinfo.Calendar.GetWeekOfYear(date1, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday)
根据您的需要,您必须设置日历周规则和一周的第一天

这将为日历提供一个周数。你可以在其他约会中得到同样的结果,不同的是你的周数


希望这对您有所帮助。

尝试以下方法获取天数:

TimeSpan ts = date1.Subtract(date2);
int dateDiff = ts.Days();
然后,就像@Oded说的,除以7

int totalWeeks = (int) dateDiff / 7;

干杯

你的意思是日历中的周吗?我的意思是两种方法,任何7天的周期都可以是一周,另一种方法是在日历之后,在特定的日期范围内有周。由于您处理的是日期,因此与日历周更相关。请检查,谢谢。你不会相信网上有多少垃圾答案,我今天脑子有点乱,什么都想不出来。当你想知道其他“类型”的周测量时,这个答案不起作用——日历周是需要的,而不是任意的跨度。比如说,你有一个频率标准,根据这个标准,某件事应该“每日历周做一次”。如果它是在周六完成的,那么在周日,您希望看到“1”的结果,因为现在是新的日历周。要得到零,您必须比较同一日历周内的两个日期。这个答案将为“0”,并继续为零,直到下周六。请参阅OP评论中的“V4Vendetta”评论。@DAG-您阅读了问题了吗?这不是它所要求的。我得到“不能将double转换为int”;我正在尝试:int numberOfWeeks=Convert.ToInt32(Math.Round((_delPerfEndDate-_delperfebegindate).TotalDays/7))@B.克莱·香农——我明白了。其他方法可以做到这一点,但我无法重现转换错误。只有当结果溢出
Int32
(并且代码处于
已检查的
上下文中)时,才能发现问题,但这将是另一个例外。在两个日期跨越不同年份的非常常见的情况下,这会失败。并非所有年份都是52周,因此您的答案没有立即明显的修正。@DAG您能否详细说明缺陷是什么以及如何修正?如果日期在不同年份,除了计算(发现)之外,您还需要更多的逻辑和数学来获得答案旧年份中日期的一年总周数。不应继续进行修复,相反,我建议对这个问题使用“最佳答案”。