我将尝试在C#中编写一个函数,用于返回两个日期之间的周差异。其目标是提供与以下相同的结果:
在上面的例子中,这两个日期之间仅相差3天,但它们属于不同的周,因此结果应该是1。
我尝试使用.TotalDays,但它不能正确工作。我还尝试使用.GetWeekOfYear,但当日期的年份不同时,它无法正确返回。我在StackOverflow和其他论坛上看到了很多类似的问题,但目前为止没有一个与我的情况匹配。这是我正在尝试的函数:
在我的函数的第一部分,我尝试了这篇文章中描述的方法。但它没有起作用。
你能帮我吗? 提前致谢。
select datediff(ww,'2018-04-13','2018-04-16') as diff
在上面的例子中,这两个日期之间仅相差3天,但它们属于不同的周,因此结果应该是1。
我尝试使用.TotalDays,但它不能正确工作。我还尝试使用.GetWeekOfYear,但当日期的年份不同时,它无法正确返回。我在StackOverflow和其他论坛上看到了很多类似的问题,但目前为止没有一个与我的情况匹配。这是我正在尝试的函数:
public static int GetWeekDiff(DateTime dtStart, DateTime dtEnd) {
// Doesn't work
var val = ((dtEnd - dtStart).TotalDays / 7);
val = Math.Ceiling(val);
return Convert.ToInt32(val);
// Doesn't work well between years
DateTimeFormatInfo dinfo = DateTimeFormatInfo.CurrentInfo;
var x = dinfo.Calendar.GetWeekOfYear(dtStart, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);
var y = dinfo.Calendar.GetWeekOfYear(dtEnd, CalendarWeekRule.FirstFullWeek, DayOfWeek.Monday);
return y - x;
}
在我的函数的第一部分,我尝试了这篇文章中描述的方法。但它没有起作用。
你能帮我吗? 提前致谢。