iPhone で時間間隔の計算を行い、いくつかのコンポーネントの値を確認するため。
#define kSecondsInYear 31556926
#define kSecondsInMonth 2629744
#define kSecondsInDay 86400
#define kSecondsInHour 3600
#define kSecondsInMinute 60
これらは Google の変換機能から取得しました。月の秒を最も近い整数に丸めました。
iPhone で時間間隔の計算を行い、いくつかのコンポーネントの値を確認するため。
#define kSecondsInYear 31556926
#define kSecondsInMonth 2629744
#define kSecondsInDay 86400
#define kSecondsInHour 3600
#define kSecondsInMinute 60
これらは Google の変換機能から取得しました。月の秒を最も近い整数に丸めました。
Cocoaで時間間隔の計算を処理する方法は、を使用することNSDateComponents
です。ドキュメントは、カレンダー計算でこれをうまくカバーしています。このようにすることで、日付の計算に支障をきたす可能性のある夏時間の問題のほとんどを処理し、これらすべての異なる単位に定数を設定する必要がなくなります。それでも必要な場合は、質問するのが最善の方法NSCalendar
です。例えば:
NSRange r = [[NSCalendar currentCalendar] rangeOfUnit:NSSecondCalendarUnit
inUnit:NSYearCalendarUnit
forDate:[NSDate date]];
NSUInteger secondsInThisYear = r.length; // Does not include leap seconds
これは 1 年の 1/12 の秒数であり、月によって長さが異なるため、正確には 1 か月ではありません。それはあなたのアプリケーションに問題を引き起こしますか?