首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#更改DateTime值的正确方法是什么?

C#更改DateTime值的正确方法是什么?
EN

Stack Overflow用户
提问于 2011-01-29 07:00:41
回答 3查看 813关注 0票数 1

是否可以更改DateTime返回的值?或者至少将其赋给一个变量,然后更改该变量?

代码语言:javascript
运行
复制
 internal int hour;
    internal int minute;
    DateTime time = DateTime.Now;

public int incrementHour(int step)
        {
            if (step > 0 && hour < 24)
            {
                //step = step % hour;
                hour = (hour + step) % 24;
                time.AddHours(hour);
                return hour;
            }//end of if

            else
            {
                MessageBox.Show("Please enter a positive number.");

                return 0;
            }//end of else
        }//end of incrementHour

从外观上看,添加小时并没有真正做任何事情。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-29 07:02:22

DateTime的实例是不可变的- AddHours()返回一个反映更改的值的DateTime的新实例-因此您必须将更改的值重新分配给您的时间变量:

代码语言:javascript
运行
复制
time =  time.AddHours(hour);

AddHours方法的MSDN (也适用于DateTime的所有其他方法):

此方法不会更改此DateTime的值。相反,它返回一个新的DateTime,它的值就是这个操作的结果。返回的DateTime对象的Kind属性与value的Kind属性相同。

票数 12
EN

Stack Overflow用户

发布于 2011-01-29 07:03:46

你所要做的就是

代码语言:javascript
运行
复制
time = time.AddHours(hour)

到此为止吧

票数 3
EN

Stack Overflow用户

发布于 2011-01-29 07:04:55

参见documentation of DateTime.AddHours,它不改变参数值,但返回一个新的DateTime实例。尝试:

代码语言:javascript
运行
复制
time = time.AddHours(hour);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4833870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档