📅 Calendarの使い方

SwiftのCalendarクラスは、日付の加算・差分・曜日など、日付に関するロジックを扱う上で欠かせないクラスです。


…読み込み中…

🧭 基本的な使い方

let calendar = Calendar.current
let now = Date()

// 明日を取得
if let tomorrow = calendar.date(byAdding: .day, value: 1, to: now) {
    print("明日: \(tomorrow)")
}

byAdding(_:value:to:) を使うことで、簡単に日付をずらすことができます。

Date | Calendar

📆 曜日や日付の構成要素を取得

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が日曜) の値で返されます。

Date | Calendar

🔢 日付の差を求める

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:) を使うことで、その月の総日数なども取得可能です。

Date | Calendar

🌏 ロケールや週の開始曜日の変更

var calendar = Calendar(identifier: .gregorian)
calendar.locale = Locale(identifier: "ja_JP")
calendar.firstWeekday = 2 // 月曜日始まりに設定

firstWeekday を変更することで、カレンダー上の週の開始曜日を変更できます。

Date | Calendar | Locale

🔗 関連リンク