如何在asp.net/c#中从两个开始和结束自定义日期获取周数

how to get the week number from two start and end custom dates in asp.net/c#

本文关键字:开始 两个 结束 自定义 周数 获取 日期 net asp      更新时间:2023-09-26

例如,起始日期= 05-09-2016(dd-mm-yyyy)结束日期= 09-01-2017

和我想把从9月5日开始的一周称为第1周最后一周是18岁

编辑:我将给出一个日期,从这两个开始和结束日期,它应该给我一周的数字。如。当我输入09-11-2016时,它应该给我第6周

,我必须实现这一点,而不做任何硬编码。

到现在为止我一直在写

DateTime date = new DateTime(2016, 09, 05   );
        DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo;
        Calendar cal = dfi.Calendar;
        Console.WriteLine( (cal.GetWeekOfYear(date, dfi.CalendarWeekRule, dfi.FirstDayOfWeek))-36);

但是这在新年开始的时候就不起作用了。有什么建议吗?如果在asp.net/c#

中无法实现,请告诉我们是否可以使用javascript实现类似的功能

看起来你需要计算两个日期之间的周数,请尝试如下:

按您的期望打印18

    DateTime date1 = new DateTime(2016, 09, 05);
    DateTime date2 = new DateTime(2017, 01, 09);
    var weeks = Math.Ceil((date2 - date1).TotalDays / 7);
    Console.WriteLine(weeks);

我给你写了一个例子,告诉你如何用迭代器来完成它,并总结你在带有日期的列表上的数据…

            public class CurrentWeek {
                public int Count{get;set;}
                public DateTime Date{get;set;}
            }
            var totalDays = (int)(toDate - fromDate).TotalDays;
            while ((int)(toDate - fromDate).TotalDays > 0)
            {
                CurrentWeek currentWeek = new CurrentWeek ();
                currentWeek.Date = fromDate;
                // here i collect the data from my list of dates
                var rslt = listOpen.Where(x => x.Date >= fromDate && x.Date <= fromDate.AddDays(7)).Select(y => y.Count).Sum();
                currentWeek.Count = rslt;
                rtrn.Add(currentWeek);
                fromDate = fromDate.AddDays(7);
            }