跟据某天日期获取农历或者节假日信息

//#define ChineseMonths @[@"正月", @"二月", @"三月", @"四月", @"五月", @"六月", @"七月", @"八月",@"九月", @"十月", @"冬月", @"腊月"]
//#define WeekDays @[@" ",@"星期日",@"星期一",@"星期二", @"星期三", @"星期四", @"星期五", @"星期六", @" "]
//#define ChineseFestival @[@"春节",@"元宵",@"端午",@"七夕",@"中元",@"中秋",@"重阳",@"腊八",@"小年",@"元旦",@"情人节", @"妇女节",@"劳动节",@"儿童节",@"建军节",@"教师节",@"国庆节",@"程序员日",@"植树节",@"光棍节",@"圣诞节",@"小寒", @"大寒", @"立春", @"雨水", @"惊蛰", @"春分",@"清明", @"谷雨", @"立夏", @"小满", @"芒种", @"夏至",@"小暑", @"大暑", @"立秋", @"处暑", @"白露", @"秋分",@"寒露", @"霜降", @"立冬", @"小雪", @"大雪", @"冬至"]
//#define ChineseDays @[@"初一", @"初二", @"初三", @"初四", @"初五", @"初六", @"初七", @"初八", @"初九", @"初十",@"十一", @"十二", @"十三", @"十四", @"十五", @"十六", @"十七", @"十八", @"十九", @"二十", @"廿一", @"廿二", @"廿三", @"廿四", @"廿五", @"廿六", @"廿七", @"廿八", @"廿九", @"三十"]
//#define ChineseWeatherFestival @[@"立春",@"雨水",@"惊蛰",@"春分",@"清明",@"谷雨",@"立夏",@"小满",@"忙种",@"夏至",@"小暑",@"大暑",@"立秋",@"处暑",@"寒露",@"霜降",@"白露",@"秋分",@"立冬",@"小雪",@"大雪",@"冬至",@"小寒",@"大寒"]
@implementation CalendarLogic


#pragma mark - 获取某天农历
+ (NSString*)getChineseCalendarWithDate:(NSDate *)date{

    NSCalendar *localeCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierChinese];

    NSInteger unitFlags =  NSCalendarUnitMonth |  NSCalendarUnitDay;

    NSDateComponents *localeComp = [localeCalendar components:unitFlags fromDate:date];

    NSString *m_str = [ChineseMonths objectAtIndex:localeComp.month-1];
    NSString *d_str = [ChineseDays objectAtIndex:localeComp.day-1];

    NSString *chineseCal_str =[NSString stringWithFormat: @"%@%@",m_str,d_str];

    return chineseCal_str;
}

#pragma mark - 获取某天星期几
+ (NSString *)getWeekWithDate:(NSDate *)date{
    NSCalendar *localeCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierChinese];
    NSInteger weekDayFlag = [localeCalendar ordinalityOfUnit:NSCalendarUnitWeekday inUnit:NSCalendarUnitWeekOfMonth forDate:date];
    NSString *weekDay_str = [WeekDays objectAtIndex:weekDayFlag];
    return weekDay_str;
}


#pragma - 获取date当天的节日
+ (NSString *)getHolidays:(NSDate *)date {

    NSString *todayHoliday;
    //今日阳历
    NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc]init];
    [dateFormatter1 setDateFormat:@"yyyy-MM-dd"];
    NSString *nowdate = [dateFormatter1 stringFromDate:date];
    NSString *monthAndDay = [nowdate substringWithRange:NSMakeRange(5, 5)];

    //农历节日
    NSTimeInterval timeInterval_day = 60*60*24;
    NSDate *nextDay_date = [NSDate dateWithTimeInterval:timeInterval_day sinceDate:date];
    NSCalendar *localeCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要判断当前日期是否是节假日、双休日,可以使用Java 8中的java.time包中的类和方法。具体可以按照以下步骤进行操作: 1. 首先,需要创建一个LocalDate对象表示当前日期,可以使用now()方法获取当前日期: ```java LocalDate today = LocalDate.now(); ``` 2. 判断当前日期是否是节假日,可以使用第三方API或者自己实现一个判断方法。这里以自己实现为例,假设节假日包括元旦节、春节、清明节、劳动节、端午节、中秋节、国庆节。可以定义一个方法,判断当前日期是否在这些节假日之一: ```java public static boolean isHoliday(LocalDate date) { int month = date.getMonthValue(); int day = date.getDayOfMonth(); if ((month == 1 && day == 1) || // 元旦节 (month == 2 && day >= 4 && day <= 10) || // 春节 (month == 4 && day >= 4 && day <= 6) || // 清明节 (month == 5 && day >= 1 && day <= 3) || // 劳动节 (month == 6 && day >= 12 && day <= 14) || // 端午节 (month == 9 && day >= 19 && day <= 21) || // 中秋节 (month == 10 && day >= 1 && day <= 7)) { // 国庆节 return true; } return false; } ``` 3. 判断当前日期是否是双休日,可以使用DayOfWeek枚举类的值来判断。如果当前日期是星期六或星期日,则认为是双休日。可以使用getDayOfWeek()方法获取当前日期的星期几: ```java public static boolean isWeekend(LocalDate date) { DayOfWeek dayOfWeek = date.getDayOfWeek(); return dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY; } ``` 4. 最后,可以通过调用上面定义的方法来判断当前日期是否是节假日、双休日: ```java if (isHoliday(today)) { System.out.println("今天是节假日!"); } else if (isWeekend(today)) { System.out.println("今天是双休日!"); } else { System.out.println("今天是工作日!"); } ``` 需要注意的是,判断节假日需要根据具体情况调整,例如春节日期会根据农历而有所不同。同时,如果需要判断其他国家或地区的节假日,也需要根据当地情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值