Days和TotalDays的区别是什么?
本文关键字:是什么 区别 TotalDays Days | 更新日期: 2023-09-27 18:17:23
谁能告诉我这两个函数在c#中的区别是什么?TotalDays和Days,因为我不确定应该在代码中使用哪一次?很抱歉关于这篇文章的信息很少,但我没有太多可以谈论的。
由于我没有发现重复的,我在这里发表了我的评论:
总是先阅读文档。TotalDays
是一个double
,因为它代表整数和小数天,而Days
是一个int
,它只代表整数天。
甚至在TimeSpan.Days
/TotalDays
的注释部分也明确提到了这一点:
Days属性表示整天,而TotalDays属性表示整天属性表示整数和小数天。
需要注意的一点是,与TimeSpan
中的其他属性(如Hours
/TotalHours
)相反,Days
没有限制。所以它不会以30或365结束(像Hour
,范围从-23到23),因为没有比年更大的单位。所以Days
和(int) ts.TotalDays
总是相同的数字。
TimeSpan
没有一个合理的"年"概念;因为它取决于起点和终点。(月是差不多的——多少个月29天有几个月?嗯,这要看情况而定。双向飞碟)
时间跨度。Days返回一个整数,表示整天(正数或负数),而TimeSpan。TotalDays返回一个双精度值,表示整数和小数天数(正数或负数)。
所有这些对于正的时间跨度值都是明显的:
new TimeSpan(2, 18, 0, 0).Days == 2
new TimeSpan(2, 18, 0, 0).TotalDays == 2.75
new TimeSpan(2, 18, 0, 0).ToString() == "2.18:00:00"
new TimeSpan(2, -18, 0, 0).Days == 1
new TimeSpan(2, -18, 0, 0).TotalDays == 1.25
new TimeSpan(2, -18, 0, 0).ToString() == "1.06:00:00"
But may be unexpected to some for negative timespan values:
new TimeSpan(-2, -18, 0, 0).Days == -2
new TimeSpan(-2, -18, 0, 0).TotalDays == -2.75
new TimeSpan(-2, -18, 0, 0).ToString() == "-2.18:00:00"
new TimeSpan(-2, 18, 0, 0).Days == -1
new TimeSpan(-2, 18, 0, 0).TotalDays == -1.25
new TimeSpan(-2, 18, 0, 0).ToString() == "-1.06:00:00"
关键是TimeSpan的每个组件都是负值或0,反之亦然。
摘自这篇好文章:c#陷阱和陷阱:时间跨度。Days和.TotalDays