🧭 基本的な使い方
let calendar = Calendar.current
let now = Date()
// 明日を取得
if let tomorrow = calendar.date(byAdding: .day, value: 1, to: now) {
print("明日: \(tomorrow)")
}
byAdding(_:value:to:) を使うことで、簡単に日付をずらすことができます。
📆 曜日や日付の構成要素を取得
let components = calendar.dateComponents([.year, .month, .day, .weekday], from: now)
if let year = components.year,
let month = components.month,
let day = components.day,
let weekday = components.weekday {
print("今日は \(year)年 \(month)月 \(day)日 曜日: \(weekday)")
}
曜日(weekday)は 1〜7(1が日曜) の値で返されます。
🔢 日付の差を求める
let start = calendar.startOfDay(for: now)
let nextWeek = calendar.date(byAdding: .day, value: 7, to: start)!
let diff = calendar.dateComponents([.day], from: start, to: nextWeek)
print("日数差分: \(diff.day ?? 0)日")
このように、2つのDateから差分(日数、月数、年数など)を取得できます。
Date | Calendar📌 特定の月の最終日を取得
let date = Date() // 今月
if let range = calendar.range(of: .day, in: .month, for: date) {
print("今月の日数: \(range.count)日")
}
range(of:in:for:) を使うことで、その月の総日数なども取得可能です。
🌏 ロケールや週の開始曜日の変更
var calendar = Calendar(identifier: .gregorian)
calendar.locale = Locale(identifier: "ja_JP")
calendar.firstWeekday = 2 // 月曜日始まりに設定
firstWeekday を変更することで、カレンダー上の週の開始曜日を変更できます。
Date | Calendar | Locale