Xcode で祝日判定をする方法(Objective-c)

Xcode で関数使用で祝日の算出が可能ですが、祝日判定関数が発見できないときに実装したものになります。
曜日を判定した後、休日でない場合だけ祝日か否か判定を行います。

最終的に、「平日土曜日休日・祝日」の3パターンになります。

グローバル関数:Wdate_chk(文字型)・・・ここに日付をセット。
グローバル関数:Wyasumi(数値型)・・・結果をセット(1:平日、2:土曜日、3:休日・祝日)
ローカル関数:Wdate(数値型)・・・switchで使用可能な変数に変換

以下のソースは、Objective-cです。

1-(void)yasumi{      //休日チェック
2     
3    NSInteger weekday;
4     
5    // NSDateComponentsで年・月・日・曜日を取得する
6    NSCalendar *calendar = [NSCalendar currentCalendar];
7     
8    NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
9    [fmt setDateFormat:@"yyyyMMdd"];
10     
11    NSDate *formatterDate = [fmt dateFromString:Wdate_chk];
12     
13    NSDateComponents *components = [calendar components: NSCalendarUnitYear | NSCalendarUnitMonth|
14                                    NSCalendarUnitDay | NSCalendarUnitWeekday fromDate:formatterDate];
15     
16    weekday = components.weekday;
17     
18    switch (weekday) {
19        case 1: //日曜日
20            Wyasumi = 3;    //日曜日
21            break;
22        case 7: //土曜日
23            Wyasumi = 2;    //土曜日
24            break;
25        default:    //平日
26            Wyasumi = 1;    //平日
27            break;
28    }
29     
30    NSInteger Wdate = [Wdate_chk intValue];
31     
32    if (Wyasumi != 3){
33        switch (Wdate){
34            case 20220101:
35            case 20220102:
36            case 20220103:
37            case 20220110:
38            case 20220211:
39            case 20220223:
40            case 20220321:
41            case 20220429:
42            case 20220503:
43            case 20220504:
44            case 20220505:
45            case 20220718:
46            case 20220811:
47            case 20220919:
48            case 20220923:
49            case 20221010:
50            case 20221103:
51            case 20221123:
52            case 20221230:
53            case 20221231:
54                Wyasumi = 3;
55                break;
56        }
57    }
58     
59    switch(Wyasumi){
60        case 1: //平日
61            self.N02bus_week.text = @"平日";
62            self.N02bus_week.textColor = [UIColor blueColor];
63            break;
64             
65        case 2: //土曜日
66            self.N02bus_week.text = @"土曜";
67            self.N02bus_week.textColor = [UIColor purpleColor];
68            break;
69             
70        case 3: //日曜日
71            self.N02bus_week.text = @"休日";
72            self.N02bus_week.textColor = [UIColor redColor];
73            break;
74    }
75}
Verified by MonsterInsights