属性或索引器'System.DateTime.TimeOfDay'无法分配给 - 它是只读的

时间:2013-08-20 05:01:55

标签: c# asp.net datetime datetimepicker

我看到了很多重复的帖子但对我来说这是不同的东西。

我有一个Datetime对象并获得时间部分&给那个分配另一个时间。当我要分配时,会引发这些错误。

这里newStartDateGroup是一个DateTime对象 在这里OpenTime是TimeSpan

  
    

无法将属性或索引器分配给 - 它是只读的

  
else if(newStartDateGroup.TimeOfDay < i.OpenTime && newEndDateGroup.TimeOfDay > i.CloseTime) // < >
 {
        newStartDateGroup.TimeOfDay = i.OpenTime;

3 个答案:

答案 0 :(得分:6)

.NET中的{p> DateTime structimmutable,因此您必须创建新值,而不是更改它的值:

newStartDateGroup = newStartDateGroup.Date.Add(i.OpenTime);

答案 1 :(得分:3)

您只能创建新的DateTime个实例。

根据您显示的代码,您只想设置日期时间 这应该这样做:

newStartDateGroup = DateTime.Today.Add(i.OpenTime);

DateTime.Today今天是00:00。

答案 2 :(得分:1)

只需手动分配小时,分钟和秒。

DateTime temp = DateTime(newStartDateGroup.Year, newStartDateGroup.Month, newStartDateGroup.Day, i.OpenTime.Hours, i.OpenTime.Minutes, i.OpenTime.Seconds);

newStartDateGroup = temp;