Xcode 開発で、前日の日付を使用したいことがありました。
Xcode で、関数等が用意されていれば容易に算出できますが、そのような関数が見つかりません。
この方法では、システム日付(現在時刻)をもとに取得しています。
秒単位で指定することで、過去はマイナス計算をさせてセットします。
Xcode 開発(Objective-c)で、実装することで対処しています。
1 | NSDateFormatter *NsdateFor = [[ NSDateFormatter alloc] init]; |
2 | NsdateFor.dateFormat = @"yyyyMMdd" ; |
5 | NSString *today = [NsdateFor stringFromDate:[ NSDate date]; |
8 | NSString *yesterday = [NsdateFor stringFromDate: |
9 | [ NSDate dateWithTimeIntervalSinceNow:-24*60*60]]; |
Xcode 開発で、指定日の前日を取得したいとき、上記当日日付をもとに対応しようと試みましたが、うまい対処ができないため、古典的なロジックで対応することになりました。(この方法しかないのか調べましたが、回答が見つからないため、以下のロジックで対処しています。)
1 | NSString *sitei_date = @"20180116" ; |
3 | NSString *date_y = [sitei_date substringWithRange: NSMakeRange (0, 4)]; |
4 | NSString *date_m = [sitei_date substringWithRange: NSMakeRange (4, 2)]; |
5 | NSString *date_d = [sitei_date substringWithRange: NSMakeRange (6, 2)]; |
7 | NSInteger date_y2 = [date_y intValue]; |
8 | NSInteger date_m2 = [date_m intValue]; |
9 | NSInteger date_d2 = [date_d intValue]; |
12 | date_d2 = date_d2 - 1; |
16 | date_m2 = date_m2 - 1; |
19 | if ((date_m2 == 4)||(date_m2 == 6)|| |
20 | (date_m2 == 9)||(date_m2 == 11)){ |
32 | date_y2 = date_y2 - 1; |
38 | date_y = [ NSString stringWithFormat: @"%04d" ,date_y2]; |
39 | date_m = [ NSString stringWithFormat: @"%02d" ,date_m2]; |
40 | date_d = [ NSString stringWithFormat: @"%02d" ,date_d2]; |
42 | NSString *date_wk = [date_y stringByAppendingString:date_m]; |
43 | NSString *next_date = [date_wk stringByAppendingString:date_d]; |
45 | NSLog ( @"xxxx %@" ,next_date); |
追記2018.01.18
Xcode 開発で、指定日より翌日を算出するロジックは、以下になります。
日付の加算方法により、1週間後、10日後などの設定も可能です。
4 | NSString *Wdate_chk = @"20180118" ; |
5 | NSString *date_y = [Wdate_chk substringWithRange: NSMakeRange (0, 4)]; |
6 | NSString *date_m = [Wdate_chk substringWithRange: NSMakeRange (4, 2)]; |
7 | NSString *date_d = [Wdate_chk substringWithRange: NSMakeRange (6, 2)]; |
9 | NSInteger date_y2 = [date_y intValue]; |
10 | NSInteger date_m2 = [date_m intValue]; |
11 | NSInteger date_d2 = [date_d intValue]; |
13 | date_d2 = date_d2 + 1; |
15 | if ((date_m2 == 1)||(date_m2 == 3)||(date_m2 == 5)|| |
16 | (date_m2 == 7)||(date_m2 == 8)||(date_m2 == 10)){ |
19 | date_m2 = date_m2 + 1; |
27 | date_y2 = date_y2 + 1; |
33 | if ((date_m2 == 4)||(date_m2 == 6)|| |
34 | (date_m2 == 9)||(date_m2 == 11)){ |
37 | date_m2 = date_m2 + 1; |
46 | date_m2 = date_m2 + 1; |
51 | date_m2 = date_m2 + 1; |
59 | date_y = [ NSString stringWithFormat: @"%04d" ,date_y2]; |
60 | date_m = [ NSString stringWithFormat: @"%02d" ,date_m2]; |
61 | date_d = [ NSString stringWithFormat: @"%02d" ,date_d2]; |
63 | NSString *date_ym = [date_y stringByAppendingString:date_m]; |
64 | Wdate_chk = [date_ym stringByAppendingString:date_d]; |
「これってすごい」「みんなに教えたい!」と思ったらぜひ共有してみてください