ちょっとしたアプリを開発しようかと思い立って, つらつらとコードを書いていたところ,さくっと機能的なところがまとまったので
公開できそうな部分を切り離して, GitHubで公開いたしました, かなり久々の公開です
iOSで時間などを操作するためのライブラリです, "DateKit"と名付けました URLは
こちら
中身はきわめてシンプルな, NSDateとNSStringのCategoryとして実装してありますので, 特に何か依存するライブラリなどはなく
NSDateと, NSStringに機能が追加されたなあという程度のものです
タイムゾーン的なところは意識していないです,(このあたりもやりたいなあ)
GitHubでは英語の解説が中心ですので, 日本語の解説をこちらでエントリーしておきました
使い方
プロジェクトそのものは, staticライブラリになっているので, ビルドしてヘッダーをコピーしていただければ外部ライブラリとして活用できるはずです.
その辺りが面倒であれば,
UnitTest
UnitTestを準備しておきました.
DateKitTests.mというソースがありましてその中にざっくりとしたUnitテストが入っています
実行のさせ方は, 通常のテストと同じで, XCodeでスキームを切り替えてTestで実行させればできます
詳しくは,
iOS UnitTest(XCTest) English
でUnitTestの走らせ方は解説しています
メソッド
現在公開しているメソッドは以下のとおりです(後でかわるかも)
NSDate
- -(NSDate *)getAdd:(int)days
days分だけ日数をプラスします
- -(NSDate *)getSub:(int)days
days分だけ日数を引きます
- -(NSDate *)getFirstDateOfMonth
月のはじめの日をとってきます
- -(NSDate *)getLastMonthLast
次の最後の日をとってきます
- -(NSDate *)getNextMonthFirst
次の月のはじめの日をとってきます
- -(int)getWeekDay
何曜日かをとってきます1:日曜日, 7:土曜日
- -(BOOL)isWeekEnd
NSDateが週末かどうかを判定します
- -(BOOL)isWeekDay
NSDateがビジネスデイかどうかを判定します
- -(int)getDay
NSDateから, 日にち情報を取得します
- -(int)getMonth
NSDateから, 月情報を取得します
- -(int)getYear
NSDateから, 年情報を取得します
- -(int)getHour
NSDateから, 時間情報を取得します
- -(int)getMinutes
NSDateから, 分情報を取得します
- -(int)getSeconds
NSDateから, 秒情報を取得します
- -(NSDate *)begin
その日のはじめ00:00:00を取得します
- -(NSDate *)end
その日の終了23:59:59を取得します
- +(NSDate *)getFromYMD:(int)year month:(int)month day:(int)day
年, 月, 日にちより, NSDateをつくります
- -(NSDate *)getFromTime:(int)hour minute:(int)minute second:(int)second
NSDateに時間情報をセットします
- -(NSString *)formatYear
NSDateより, yyyyフォーマットのNSStringを取得します
- -(NSString *)formatMonth
NSDateより, MMフォーマットのNSStringを取得します
- -(NSString *)formatDay
NSDateより, ddフォーマットのNSStringを取得します
- -(NSString *)formatA
NSDateより, yyyy-MM-ddフォーマットのNSStringを取得します
- -(NSString *)formatB
NSDateより, yyyy/MM/ddフォーマットのNSStringを取得します
- -(NSString *)formatFull
NSDateより, yyyy/MM/dd HH:mm:ssフォーマットのNSStringを取得します
- -(BOOL)before:(NSDate *)target
NSDateがターゲットのNSDateより前であるどうかの判定をします
- -(BOOL)after:(NSDate *)target
NSDateがターゲットのNSDateより後であるどうかの判定をします
NSString
- -(NSDate *)parseYYYYMMddD
YYYY-MM-dd の形のNSStringをパースして, NSDateで返します, 失敗するとnilが返ります
- -(NSDate *)parseYYYYMMddS
YYYY/MM/dd の形のNSStringをパースして, NSDateで返します, 失敗するとnilが返ります
- -(NSDate *)parseH
YYYY-MM-dd HH:mm の形のNSStringをパースして, NSDateで返します, 失敗するとnilが返ります
- -(NSDate *)parseFull
YYYY-MM-dd HH:mm:ss の形のNSStringをパースして, NSDateで返します, 失敗するとnilが返ります
例をいくつか
1日先のNSDateをとってくる
NSDate *today = [NSDate date];
NSDate *tomorrow = [today getAdd:1];
1日前のNSDateをとってくる
NSDate *today = [NSDate date];
NSDate *yesterday = [today getSub:1];
YYYY/MM/ddのフォーマットのNSStringをパースする(失敗するとnilがかえります)
NSString *str = @"2014/03/01";
NSDate *format = [str parseYYYYMMddS];
例を増やしていければなと思います(編集中)
0 件のコメント:
コメントを投稿