Help us understand the problem. What is going on with this article?

Swiftで日付の操作

More than 3 years have passed since last update.

SwiftでCommonクラスに入れて使いまわしている日付取得用のメソッドです。

前はObjective−Cで書いていたのですが、Swiftに書き換えてみようと思い、土日数時間使ってちょこちょことやってます。
マンガ新刊情報〜圏外OK!買い忘れ防止アラートあり!〜

月を渡して表示させたい画像を選択

月の値を渡して画像を切り替えたいというときに使っています。
スクリーンショット 2015-08-23 21.38.03.png

共通のメソッドは以下のようになってます。

Common.swift
    /** 月から表示させる画像ファイル名を取得 */
    func getMonthImage(strMonth:String)->String{
        return commonConst.common.imageList[strMonth.toInt()!-1]
    }

画像のファイル名を月順に配列にもたせて、そこから取得する流れです。

commonConst.swift
class commonConst {
    struct common {
        static let imageList :[String] = [
            "Jan.png",
            "Feb.png",
            "Mar.png",
            "Apr.png",
            "May.png",
            "Jun.png",
            "Jul.png",
            "Aug.png",
            "Sep.png",
            "Oct.png",
            "Nov.png",
            "Dec.png"
        ]
    }
}

時差を取得

私が作ってる漫画の新刊情報取得アプリはローカルストレージに発売スケジュールを持ってます。
マンガの新刊情報ってそんな更新頻度ないんで1日1回だけ最新がないかチェックをかけてるわけです。
そういうわけで現在日時と前回更新日時の差分をとるためのメソッドです。

Common.swift
    /** 時間の差分を取得 */
    func diffDate(baseDate:NSDate,checkDate:NSDate) -> NSInteger{
        var sinceInt = NSInteger(checkDate.timeIntervalSinceDate(baseDate))
        return sinceInt/60
    }

今日って第何週?

発売情報を週ごとに表示させる際、今日が第◯週だったらその週を最初から表示させてまう!
じゃ、今日は第何週目ですかー?というときのメソッドです。
スクリーンショット 2015-08-23 21.45.28.png
(ULTRAMANかっこいい。。)

Common.swift
    /** 今日が第何週か取得 */
    func getTodayWeekOfMonth() -> Int {
        let calendar = NSCalendar.currentCalendar()
        var comp : NSDateComponents = calendar.components(
            NSCalendarUnit.CalendarUnitWeekOfMonth, fromDate: NSDate())
        return comp.weekOfMonth
    }

日付フォーマット毎回書くの面倒

フォーマットさせたいNSDate型の日時と、取得したい日時フォーマット形式を渡すとStringで返してくれるメソッドです。

Common.swift
    /** 日付のフォーマット */
    func dateFormatter(date : NSDate, style : String) -> String {
        let dateFormatter = NSDateFormatter()
        dateFormatter.locale = NSLocale(localeIdentifier: "ja_JP")
        dateFormatter.dateFormat = style
        return  dateFormatter.stringFromDate(date)
    }

使うときはこんな感じ。

Common.swift
    /** 今日の月を取得 */
    func getThisMonth()->String{
        var now = dateFormatter(NSDate(), style: "M")
        return now
    }

以上ですー。
こうした方がかっこいいよ!というのがあればコメントよろしくですー。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away