如何在月末添加日期到DateTime?

时间:2015-11-30 14:27:58

标签: c# datetime

我通过在当前日期添加一天来创建日期时间(如下所示)。我需要设置的具体时间如下所示。下面这段代码很有效,直到我到月底我试图添加一天。

你能帮我改变我的代码,以便在当天的月末工作时我可以使用它并且我试图添加一天以便它切换到12月1日而不是11月31日(例如)并抛出一个错误。

var ldUserEndTime = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day + 1, 00, 45, 00);

4 个答案:

答案 0 :(得分:13)

您只需使用DateTime.AddDays method即可使用Date property获取午夜时间并添加45分钟。

var ldUserEndTime = dateNow.AddDays(1).Date.AddMinutes(45);

由于November中没有第31天,因此该构造函数抛出异常。

来自DateTime(Int32, Int32, Int32, Int32, Int32, Int32)页面的例外部分;

  

ArgumentOutOfRangeException - day小于1 或大于   每月的天数

答案 1 :(得分:6)

也许某种混合方法最适合您,这样您就可以获得时间组件并在月底没有麻烦的情况下添加一天:

var ldUserEndTime = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day, 00, 45, 00).AddDays(1);

AddDays方法会自动考虑月份翻转,所以如果今天是月末(嘿,它是!),那么你将获得2015-12-01 12:45:00

答案 2 :(得分:2)

这应该可以解决问题:

DateTime ldUserEndTime = DateTime.Today.AddDays(1).AddMinutes(45);

答案 3 :(得分:2)

var ldUserEndTime = DateTime.Today + new TimeSpan(1, 0, 45, 0);