Swiftで日付の操作
久しぶりの投稿です。
SwiftでCommonクラスに入れて使いまわしている日付取得用のメソッドです。
前はObjective−Cで書いていたのですが、Swiftに書き換えてみようと思い、土日数時間使ってちょこちょことやってます。
マンガ新刊情報〜圏外OK!買い忘れ防止アラートあり!〜
月を渡して表示させたい画像を選択
月の値を渡して画像を切り替えたいというときに使っています。
共通のメソッドは以下のようになってます。
/** 月から表示させる画像ファイル名を取得 */ func getMonthImage(strMonth:String)->String{ return commonConst.common.imageList[strMonth.toInt()!-1] }
画像のファイル名を月順に配列にもたせて、そこから取得する流れです。
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回だけ最新がないかチェックをかけてるわけです。
そういうわけで現在日時と前回更新日時の差分をとるためのメソッドです。
/** 時間の差分を取得 */ func diffDate(baseDate:NSDate,checkDate:NSDate) -> NSInteger{ var sinceInt = NSInteger(checkDate.timeIntervalSinceDate(baseDate)) return sinceInt/60 }
今日って第何週?
発売情報を週ごとに表示させる際、今日が第◯週だったらその週を最初から表示させてまう!
じゃ、今日は第何週目ですかー?というときのメソッドです。
(ULTRAMANかっこいい。。)
/** 今日が第何週か取得 */ func getTodayWeekOfMonth() -> Int { let calendar = NSCalendar.currentCalendar() var comp : NSDateComponents = calendar.components( NSCalendarUnit.CalendarUnitWeekOfMonth, fromDate: NSDate()) return comp.weekOfMonth }
日付フォーマット毎回書くの面倒
フォーマットさせたいNSDate型の日時と、取得したい日時フォーマット形式を渡すとStringで返してくれるメソッドです。
/** 日付のフォーマット */ func dateFormatter(date : NSDate, style : String) -> String { let dateFormatter = NSDateFormatter() dateFormatter.locale = NSLocale(localeIdentifier: "ja_JP") dateFormatter.dateFormat = style return dateFormatter.stringFromDate(date) }
使うときはこんな感じ。
/** 今日の月を取得 */ func getThisMonth()->String{ var now = dateFormatter(NSDate(), style: "M") return now }
以上ですー。
こうした方がかっこいいよ!というのがあればコメントよろしくですー。