【发布时间】:2017-06-19 17:52:07
【问题描述】:
使用 c#,我想将当前周至今与上周至今的同一时期进行比较。例如,如果今天是星期三,并且如果一周的第一天是星期日,那么我想比较本周星期日 - 星期二与上周星期日 - 星期二的总数。我没有计算星期三,因为直到当天午夜我才拥有一整天的数据。
同样适用于将此 mtd 与上个月和去年的相同天数进行比较。例如,如果当前日期是 6 月 19 日,我想将上个月 5 月 1 日至 18 日以及去年 1 月 1 日至 6 月 18 日的数据与今年 1 月 1 日至 6 月 18 日的数据进行比较。
我尝试使用的变量如下所示:
//Current dates
DateTime currentDte = DateTime.Now;
DateTime beginWeek = DateTime.Now.StartOfWeek(DayOfWeek.Sunday);
DateTime beginMonth = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
DateTime beginYear = new DateTime(DateTime.Now.Year, 1, 1);
//Historical dates
DateTime lastWeekToDate = DateTime.Now.StartOfWeek(DayOfWeek.Sunday - (7 - (int)DateTime.Now.DayOfWeek));
DateTime lastMonthToDate =
DateTime lastYearToDate =
如您所见,我计算出了当前日期,并可以遍历它们以获取我需要的 wtd、mtd 和 ytd 数据。我设法弄清楚如何获得我需要的最后一周。
但我不知道如何获取我需要的 lastMonthToDate 和 lastYearToDate 日期。我已经尝试了我能想到的一切。我已经阅读了日期文档,直到我的眼睛受伤,但我仍然想出了鹅蛋。谁能给点建议?
【问题讨论】:
-
如果我理解正确
lastMonthToDate是当前日期的前一个月,而lastYearToDate使用的是最后一年 - 对吗? -
我不确定您遇到了什么问题。
DateTime只能代表一个日期时间。所以如果你想要一个DateTime是上个月的第一天,那么你为什么不直接做beginMonth.AddMonths(-1)呢?您已经弄清楚了获取当月第一天的逻辑,因此只需减去一个月。 -
如果我不清楚,我深表歉意。我确实想要一个具体的日期。例如,如果今天是 2017 年 6 月 19 日,我想要 2017 年 5 月 19 日和 2016 年 6 月 19 日。我该怎么做?
-
又困惑又好笑,你是对的。
标签: c# date date-comparison