用于在iPhone上使用时间间隔计算并查看某些组件值。
#define kSecondsInYear 31556926
#define kSecondsInMonth 2629744
#define kSecondsInDay 86400
#define kSecondsInHour 3600
#define kSecondsInMinute 60
我从Google的转换功能中获得了这些功能。我将Month中的Seconds舍入到最接近的int。
答案 0 :(得分:1)
一天有86400秒,除非它是leap second year,在这种情况下,其中一天有86401秒。 2008年是这样的一年。
一年有31556926秒,除非它是闰年,在这种情况下加一秒。如果是闰年,请添加一天的秒数。
正如sixfoottallrabbit指出的那样,一个月内的秒数取决于是否是28,29,30或31个月。
鉴于上述情况,我认为Cocoa不太可能为以下内容定义常量,但我可能错了,因为它只是猜测。
答案 1 :(得分:0)
嗯,这是一年中1/12的秒数,而不是一个月,因为不同的月份是不同的长度。这会导致您的申请出现问题吗?
答案 2 :(得分:0)
在Cocoa中处理时间间隔计算的方法是使用NSDateComponents
。文档在Calendrical Calculations中涵盖了这一点。这样做可以处理大多数可能困扰日期计算的夏令时问题,并且应该避免需要为所有这些不同单位设置常量。如果您仍然需要它们,获得它们的最佳方法是询问NSCalendar
。例如:
NSRange r = [[NSCalendar currentCalendar] rangeOfUnit:NSSecondCalendarUnit
inUnit:NSYearCalendarUnit
forDate:[NSDate date]];
NSUInteger secondsInThisYear = r.length; // Does not include leap seconds