現在時刻に応じてコメントを出し分け(NSDate) – Swift4.0

現在の時刻を判定してコメントを出し分けるコードを書いたので備忘録。

サンプルコード – Swift4.0

        
        let now = NSDate()
        let date = DateFormatter()
        date.dateFormat = "HH:mm:ss"
        let string = date.string(from: now as Date)
        
        if "06:00:00" <= string && string <= "12:00:00" {
            dateLabel.text = "おはようございます。現在の時刻は\(string)です。"
            
        } else if "12:00:01" <= string && string <= "15:00:00"{
            dateLabel.text = "お昼だよ。現在の時刻は\(string)です。"
            
        } else if "15:00:01" <= string && string <= "18:00:00"{
            dateLabel.text = "おやつの時間だよ。現在の時刻は\(string)です。"
            
        } else if "18:00:01" <= string && string <= "21:00:00"{
            dateLabel.text = "夜ご飯だよ。現在の時刻は\(string)です。"
            
        } else if "21:00:01" <= string && string <= "23:59:59"{
            dateLabel.text = "明日の準備してね。現在の時刻は\(string)です。"
            
        } else if "00:00:00" <= string && string <= "05:59:59"{
            dateLabel.text = "早く寝なさい。現在の時刻は\(string)です。"
        }
    }

コードの説明

NSdate

現在の日付時刻を管理するクラスです。
引数なしでイニシャライザ実行すると、現在の日付時刻を管理するインスタンスが生成されます。
また、今回はdateFormatプロパティでHH時mm分ss秒を指定しています。

論理積「&&」

「&&」とは論理積(AND)で 左辺と右辺が両方ともtrueの場合にtrueを返します。
今回は、dateFormatで指定された形式に合わせて、左辺と右辺の間の時刻であれば、そのコメントを表示するようにしました。
実際はもっと入れ子にして単純化できると思いますが。。


お知らせ

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