Xcode で関数使用で祝日の算出が可能ですが、祝日判定関数が発見できないときに実装したものになります。
曜日を判定した後、休日でない場合だけ祝日か否か判定を行います。
最終的に、「平日、土曜日、休日・祝日」の3パターンになります。
グローバル関数:Wdate_chk(文字型)・・・ここに日付をセット。
グローバル関数:Wyasumi(数値型)・・・結果をセット(1:平日、2:土曜日、3:休日・祝日)
ローカル関数:Wdate(数値型)・・・switchで使用可能な変数に変換
以下のソースは、Objective-cです。
-(void)yasumi{ //休日チェック NSInteger weekday; // NSDateComponentsで年・月・日・曜日を取得する NSCalendar *calendar = [NSCalendar currentCalendar]; NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; [fmt setDateFormat:@"yyyyMMdd"]; NSDate *formatterDate = [fmt dateFromString:Wdate_chk]; NSDateComponents *components = [calendar components: NSCalendarUnitYear | NSCalendarUnitMonth| NSCalendarUnitDay | NSCalendarUnitWeekday fromDate:formatterDate]; weekday = components.weekday; switch (weekday) { case 1: //日曜日 Wyasumi = 3; //日曜日 break; case 7: //土曜日 Wyasumi = 2; //土曜日 break; default: //平日 Wyasumi = 1; //平日 break; } NSInteger Wdate = [Wdate_chk intValue]; if (Wyasumi != 3){ switch (Wdate){ case 20220101: case 20220102: case 20220103: case 20220110: case 20220211: case 20220223: case 20220321: case 20220429: case 20220503: case 20220504: case 20220505: case 20220718: case 20220811: case 20220919: case 20220923: case 20221010: case 20221103: case 20221123: case 20221230: case 20221231: Wyasumi = 3; break; } } switch(Wyasumi){ case 1: //平日 self.N02bus_week.text = @"平日"; self.N02bus_week.textColor = [UIColor blueColor]; break; case 2: //土曜日 self.N02bus_week.text = @"土曜"; self.N02bus_week.textColor = [UIColor purpleColor]; break; case 3: //日曜日 self.N02bus_week.text = @"休日"; self.N02bus_week.textColor = [UIColor redColor]; break; } }