iOS计算两个时间点之间的工作日

本文提供了一种在iOS开发中计算两个日期间的工作日数量的方法。通过分析开始和结束日期所在的周几,此方法能够准确地计算出除去周末天数后的实际工作日数量。适用于项目进度管理和工作计划安排。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于具体内容是参照了别人的代码,所以如果大家看到有跟哪个哥们相似的地方,请大家谅解,不算纯原创,但是计算工作日是够用的,网上借鉴的有些改动

//计算工作日

- (NSInteger)workingDaysWithBeginDateString:(NSString *)beginString andEndDateString:(NSString *)endString {

    

    NSDate *beginDate = [self dateFromString:beginString];

    NSDate *endDate = [self dateFromString:endString];

    

    NSDateComponents *beginComponets = [[NSCalendar autoupdatingCurrentCalendar] components:NSCalendarUnitWeekday fromDate:beginDate];

    NSInteger beginWeekDay = [beginComponets weekday];

    NSDateComponents *endComponets = [[NSCalendar autoupdatingCurrentCalendar] components:NSCalendarUnitWeekday fromDate:endDate];

    NSInteger endWeekDay = [endComponets weekday];

    NSTimeInterval time = [endDate timeIntervalSinceDate:beginDate];

    

    float oneWeekDay = 7 - beginWeekDay;

    float allDay = time / (24 * 60 * 60);

    float day = 0.0;

    

    if (allDay >= oneWeekDay + 2) {

        float otherDay = allDay - (oneWeekDay + 2);

        float ResidualDay = otherDay - ((int)otherDay / 7) * 2;

        day = ResidualDay + oneWeekDay;

    }else{

        day = endWeekDay - beginWeekDay;

    }

    return day;

}

//日期转字符串

- (NSString *)stringDateToDateString:(NSDate *)mydate {

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

    [dateFormatter setDateFormat:@"yyyy-MM-dd"];

    NSString *stringDate = [dateFormatter stringFromDate:mydate];

    return stringDate; 

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值