DateComponentsを使用して作成した2つの日付の間隔を調べようとしています。私が最初の日付を2年前の1年前にすると、365日、0時間、0分、0秒が得られます。私が日付をさらに離れて(ここ400年)、突然私の日付は11分56秒ずれています。ここでは、コードは次のとおりです。Swift 3 2つの日付間の時間間隔のエラー
import Foundation
var mycal = Calendar(identifier: .iso8601)
var datum = DateComponents(year:1600, month:1, day:1, hour:12, minute:0,
second:0)
let j2000 = DateComponents(year:2000, month:1, day:1, hour:12, minute:0,
second:0)
let datum_date = mycal.date(from: datum)
let j2000_date = mycal.date(from: j2000)
let interval = mycal.dateComponents([.day, .hour, .minute, .second], from:j2000_date!, to:datum_date!)
print("Datum: \(datum_date!)") //1600-01-01 19:48:04 +0000
print("j2000: \(j2000_date!)") //2000-01-01 20:00:00 +0000
は、次のツー最後の行に注意してください。コメントはプリントが生成するかを示します。私はグレゴリオ暦でも同じ問題を試しました。私は矛盾がどれくらいまで戻っているのか正確にはわかりません。私は十分に生産して戻ってきました。不思議なことに、「間隔」には正しい日数(ここでは-146097)が表示されますが、表示された日付が正しくないため、計算に必要となる可能性があります。誰にでもアイデアはありますか?
エラーはありません。 –
「間隔」にエラーはありませんが、11:56までに作成された日付はなぜですか?私は最初の段落を編集しました。私は間違って私の間隔がオフだと言ったが、実際に生産された日付です。ありがとう。 – Aloft
カレンダーの調整。 https://en.wikipedia.org/wiki/Gregorian_calendarなぜそれが必要でしょうか? –