我通过在当前日期添加一天来创建日期时间(如下所示)。我需要设置的具体时间如下所示。下面这段代码很有效,直到我到月底我试图添加一天。
你能帮我改变我的代码,以便在当天的月末工作时我可以使用它并且我试图添加一天以便它切换到12月1日而不是11月31日(例如)并抛出一个错误。
var ldUserEndTime = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day + 1, 00, 45, 00);
答案 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);