【问题标题】:C# For every hour including the timeC#对于每个小时,包括时间
【发布时间】:2013-09-18 05:30:41
【问题描述】:

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

天 - 以小时为单位绘制

周 - 以天为单位绘制

月份 - 以周为单位绘制

半年 - 以周为单位绘制

每年 - 以月为单位绘制

我有如下逻辑来绘制天数图表

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 天,这对于最终用户来说是宝贵的信息

【问题讨论】:

    标签: c# datetime foreach logic


    【解决方案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));
    

    注意夏令时

    【讨论】:

    • 这对年、周和月是如何工作的。最后一行代码是一个月的?
    • 评论了代码。基本上,您添加小时/分钟的差异,以便您也可以循环浏览最后一个。希望这能给你一个想法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多