这可能是一个愚蠢的问题。是否可以设置一个变量值来获取上个月的数据?例如,如果是 9 月 24 日,我想要从 8 月 1 日到 8 月 31 日的所有内容。因此,当前日期应该无关紧要。我在盘点报告中使用它。我目前使用这个:
var firstDayofPreviousMonth = DateTime.Today.AddMonths(-1);
该报告在每月 1 日自动运行。所以我想,只是从1个月前拉,但我的老板突然改变主意,想每天拉报告。
这有意义吗?如果您需要更多信息,请发表评论。
这可能是一个愚蠢的问题。是否可以设置一个变量值来获取上个月的数据?例如,如果是 9 月 24 日,我想要从 8 月 1 日到 8 月 31 日的所有内容。因此,当前日期应该无关紧要。我在盘点报告中使用它。我目前使用这个:
var firstDayofPreviousMonth = DateTime.Today.AddMonths(-1);
该报告在每月 1 日自动运行。所以我想,只是从1个月前拉,但我的老板突然改变主意,想每天拉报告。
这有意义吗?如果您需要更多信息,请发表评论。
以下是我使用的方法:
public static DateTime GetStartOfLastMonth(DateTime dt)
{
var date = dt.AddMonths(-1);
return new DateTime(date.Year, date.Month, 1, 0, 0, 0, DateTimeKind.Local);
}
public static DateTime GetEndOfLastMonth(DateTime dt)
{
var date = dt.AddMonths(-1);
var daysInLastMonth = DateTime.DaysInMonth(date.Year, date.Month);
return new DateTime(date.Year, date.Month, daysInLastMonth, 0, 0, 0, DateTimeKind.Local);
}
注意:根据您的情况,您可能希望更改GetEndOfLastMonth
为23,59,59
. 由于我在日期中操作,这与此代码所在的库无关。
DateTime refDate = DateTime.Now.AddMonths(-1);
DateTime firstDayPreviousMonth = new DateTime(refDate.Year, refDate.Month, 1);
DateTime lastDayPreviousMonth = new DateTime(refDate.Year, refDate.Month, DateTime.DaysInMonth(refDate.Year,refDate.Month));