[Swift5]3ヶ月前の日付との日数差分を取得

1ヶ月間の日の日数が月によって可変するので、timeIntervalを使用する方法ではなく違う方法でやる必要があったが、よく忘れるので備忘のため。

サンプルコード

import UIKit

class ViewController: UIViewController {
    
    //本日の日付...今日は12/28です
    let startOfDayIsToday = Calendar.current.startOfDay(for:Date())
    
    //3ヶ月前の日付
    let threeMonthAgo = Calendar.current.date(
        byAdding: .month, value: -3, to: Calendar.current.startOfDay(for:Date())
    )

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let dayInterval = (Calendar.current.dateComponents([.day], from:threeMonthAgo! , to: startOfDayIsToday)).day
        print("今日の日付:",startOfDayIsToday)
        print("3ヶ月前:",threeMonthAgo!)
        print("日付差分:",dayInterval!)
    }
}

デバッグエリアの表示

今日の日付: 2019-12-27 15:00:00 +0000
3ヶ月前: 2019-09-27 15:00:00 +0000
日付差分: 91

コードの説明

Calendar.Component部分をmonth –> dayに変え、valueの値を変えれば昨日の日付との差分も出せたりします。

Calendar.Componentは公式ドキュメントを見ると結構種類がたくさんあるので、色々変えてみると面白いです。


お知らせ

ヒヨコ歩数計という歩きながらヒヨコが育っていくアプリを作って、いろんな方に結構使ってもらっています。
RealmSwift, Admobの動画・インステ・バナー広告、UICollectionView、iOS-Charts、UITableViewを使用しているので、是非ご利用ください!