-1

我正在绘制柱形图。其中 x 轴是日期类型

IE

日 - 以小时为单位

周 - 以天为单位绘制

月 - 以周为单位绘制

半年 - 以周为单位绘制

每年 - 以月为单位绘制

我有一个类似下面的逻辑来绘制 Days 图表

for (DateTime graphStartDate = startDate; graphStartDate < endDate; graphStartDate = graphStartDate.AddHours(1))

例如,这是我的开始日期和结束日期10/10/2013 12:00:00 AM10/10/2013 9:32:00 PM。上面的代码将只提取图表9:00 PM并省略 30 分钟(这也是要考虑的)。我如何编写一个也将其包含在计算中的循环。这也必须实施数周,因为我将做+7几天,有可能我会遗漏1 - 6几天,这对最终用户来说是宝贵的信息

4

1 回答 1

1

将 EndDate 舍入到下一个小时/天/月

例子

DateTime dt = DateTime.Now;
Console.WriteLine(dt);
//hour
Console.WriteLine(dt.AddMinutes(60 - dt.Minute));
//day
Console.WriteLine(dt.AddHours(24 - dt.Hour));
//week
Console.WriteLine(dt.AddDays(7-(int)dt.DayOfWeek));
//month
Console.WriteLine(dt.AddDays(DateTime.DaysInMonth(dt.Year,dt.Month)-dt.Day));

注意夏令时

于 2013-09-18T05:58:53.420 回答