gpt4 book ai didi

ios - 从工作日获取日期

转载 作者:行者123 更新时间:2023-11-28 22:26:23 27 4
gpt4 key购买 nike

我正在开发这个应用程序,用户可以在其中输入几天(使用 UITableView,周一至周日)。然后我需要该应用程序来确定与哪些日期匹配。假设用户坐在 15 号星期日并选择星期一和星期二。该应用程序会计算出日期是 16 号星期一和 17 号星期二。

如何使用 NSDate 之类的东西来解决这个问题?我知道如何使用日期查找工作日,但我想要相反的日期。

当然必须是最近的日子,比如不是找23号星期一,而是找16号。

希望这是有道理的。 :-)

最佳答案

不使用循环的直接方法:

NSUInteger targetWeekday = ...; // 1 = Sunday, 2 = Monday, ...

// Date components for today:
NSCalendar *cal = [NSCalendar currentCalendar];
NSDate *now = [NSDate date];
NSDateComponents *comp = [cal components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSWeekdayCalendarUnit
fromDate:now];

// Adjust components for target weekday:
if (targetWeekday >= comp.weekday) {
comp.day += (targetWeekday - comp.weekday);
} else {
comp.day += (targetWeekday + 7 - comp.weekday); // Assuming 7 days per week.
}
comp.weekday = targetWeekday;

// And back to NSDate:
NSDate *targetDate = [cal dateFromComponents:comp];

备注:

if (targetWeekday >= comp.weekday) {
comp.day += (targetWeekday - comp.weekday);
} else {
comp.day += (targetWeekday + 7 - comp.weekday); // Assuming 7 days per week.
}

可以用更短的等效代码代替

comp.day += (targetWeekday + 7 - comp.weekday) % 7;

关于ios - 从工作日获取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18833223/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com