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

本文关键字:分配 只读 TimeOfDay 索引 System 属性 DateTime | 更新日期: 2023-09-27 18:28:13

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

我有一个Datetime对象,并得到时间部分&再分配一个时间。当我要分配它时,它会引发这些错误。

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

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

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

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

.NET中的DateTime结构是不可变的,因此您必须创建一个新结构:

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

您只能创建新的DateTime实例。

根据显示的代码,您只想设置一天的时间
这应该做到:

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

DateTime.Today是今天00:00。

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

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