我对这件事非常好奇
的Int32
int addmonths_int = 10;
DateTime.Now.AddMonths(addmonths_int);
的Int16
short addmonths_short = 10;
DateTime.Now.AddMonths(addmonths_short);
如果我们可以在Int16
函数中将AddMonths
作为参数,并且月份的值永远不会超过12
,那么为什么.NET Framework
将月份用作Int32
{1}}而非Int16
...
如果在宣布月份为Int16
时有任何文化特定问题...... !! ?? !!
我在这里想,如果month
本来是Int16
那么它会在某些地方节省一些长度......我认为Memory Allocation
什么是DateTime.Now.Month属性的建议不能是Int16而不是Int32 ??
是一个人和同一个人吗?
答案 0 :(得分:9)
首先,它可能超过12个月。没有什么可以阻止你计算日期加上435345个月。
对于Int32选择:Int32是32位系统的本机整数数据类型,因此它是最有效的数据类型。
答案 1 :(得分:3)
如果我们可以在AddMonths函数中将Int16作为参数提供,并且月份的值永远不会超过12,那么为什么.NET Framework将月份用作Int32而不是Int16 ......
为什么你不能在今天增加十三个月到2012年6月25日结束?
答案 2 :(得分:1)
您的假设不正确:
月份的价值也永远不会 超过12
即使你是对的,我也不认为它会使用16位整数而不是32位整数给你带来太大的影响:可能DateTime对象的大小根本不会改变。
答案 3 :(得分:1)
使用AddMonths函数,您可以在指定日期添加超过12个月。
但实际限制如下:
月份值必须介于+/- 120000
之间