将两个日期时间变量合并为一个



我有两个datetime变量,我想把它们组合在一起。

这是我到目前为止的代码:

Int32 addDay = Convert.ToInt32((ucWait.model.SelectMCCodeAskOutObj as SelectMCCodeAsk_OUT).PRIORITY);
this.dp_RST.SelectedDate = CommonServiceAgent.SelectSysDate().AddDays(addDay);

正在读取sysdate;我试图改变它,从另一个变量中读取。这是我的尝试:

Int32 addDay = Convert.ToInt32((mcnon.model.SelectMCCodeAskOutObj as SelectMCCodeAsk_OUT).PRIORITY);
this.dp_RST.SelectedDate = (dgFUList.SelectedItem as SelOutOrderInfo_OUT).NEXT_DAY.AddDays(addDay);

我得到一个错误,AddDays没有定义

(System.Nullable没有包含"AddDays"的定义,也没有找到接受类型为"System.Nullable"的第一个参数的扩展方法"AddDays"(您是否缺少using指令或程序集引用?))

错误清楚地指出它将出现在这一行。

this.dp_RST.SelectedDate = (dgFUList.SelectedItem as SelOutOrderInfo_OUT).NEXT_DAY.AddDays(addDay);

这是因为SelOutOrderInfo_OUTType中的NEXT_DAYProperty为Nullable<DateTime>

你可以做

this.dp_RST.SelectedDate = (dgFUList.SelectedItem as SelOutOrderInfo_OUT).NEXT_DAY.Value.AddDays(addDay);

但是,您可以检查该值是否为空,否则您可能会遇到问题。

更好的解决方案

var dt = (dgFUList.SelectedItem as SelOutOrderInfo_OUT).NEXT_DAY;
if (dt.HasValue)
this.dp_RST.SelectedDate = dt.Value.AddDays(addDay);

似乎SelOutOrderInfo_OUT.NEXT_DAY的类型是Nullable<DateTime>(日期?是相同的语法糖)并且Nullable<DateTime>不包含方法AddDays()

您应该首先验证.NEXT_DAY不返回空值,然后调用AddDays()的基础值。

根据您使用的c#版本,您应该能够执行

this.dp_RST.SelectedDate = (dgFUList.SelectedItem as SelOutOrderInfo_OUT).NEXT_DAY
.Value? // Check for null before attempting to add days.
.AddDays(addDay);

相关内容

  • 没有找到相关文章

最新更新