如何获得下个月的日子?

Cha*_*glu 2 c# datetime daycount

我想要实现的目标

我想要获得两个月(当前)和下个月的天数.实际上我使用该代码成功实现了这一点:

int monthDays = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
string[] days = Enumerable.Range(1, monthDays).Select(x => x.ToString("D2")).ToArray();
Run Code Online (Sandbox Code Playgroud)

基本上我使用了该函数DaysInMonth,然后我生成了一个List<int>代表那个月的日子.

问题

现在,我想要了解下个月的日子,但我有一些问题需要处理以下情况:

December 2018 (current)
January 2019 (next)
Run Code Online (Sandbox Code Playgroud)

我尝试了什么

正如你所看到的那样year已经改变了,所以我为下一个月的日子编写的代码将会失败:

var nextMonth = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(1);
monthDays = DateTime.DaysInMonth(DateTime.Now.Year, nextMonth.Month);
days = Enumerable.Range(1, monthDays).Select(x => x.ToString("D2")).ToArray();
Run Code Online (Sandbox Code Playgroud)

我怎样才能管理next本月的新年?

alo*_*ica 6

使用AddMonth()......添加一个月.最后,用于DaysInMonth获取指定月份和年份的天数.

public static void Main()
{
    // 12 for december as example
    var current = new DateTime(DateTime.Now.Year, 12, DateTime.Now.Day);
    var next  = current.AddMonths(1);
    Console.WriteLine(DateTime.DaysInMonth(next.Year, next.Month));
}
Run Code Online (Sandbox Code Playgroud)

产量

31
Run Code Online (Sandbox Code Playgroud)

在线试试吧!

额外奖励:您可以阅读AddMonth()来源.