gpt4 book ai didi

ios - 如何在 objective-c 中获取周数的开始和结束日期

转载 作者:行者123 更新时间:2023-11-28 21:52:14 24 4
gpt4 key购买 nike

在我的 iOS 应用中,我有一个周数,我需要获取该周数的开始和结束日期。

我正在构建一个应用程序,公司经理可以使用该应用程序跟踪员工的工作时间。这些工作时间每天在自定义 Registration 对象中处理。在此对象中,存储日期、开始时间、结束时间和休息时间,并根据这些值计算工作时间。

然后,所有 Registration 对象都存储在 WorkWeek 对象中,其中包含周数和注册数组。 WorkWeek 是基于周数构建的,从周一到周日运行。在这个 WorkWeek 对象中,计算总工作时间、加类时间和工资。

很明显,如果 Workweek 不是从星期一到星期五的整周,我就无法可靠地计算额外的工时。当用户选择从我的数据库中获取 mont 的所有注册时,尤其会发生这种情况。一个月不会从星期一开始,也不会在恰好四个星期后的星期日结束,所以我正在处理不可靠的周对象。

总结

为了确保我在我的应用程序中显示的信息是可靠的,我需要确定某一周(例如第 1 周或第 52 周)是否至少包含 7 天,如果不是,我需要将 bool 值设置为 FALSE然后触发通知我的用户。

如何根据周数获取一周的开始和结束日期?

最佳答案

这显示了它是如何完成的:

NSCalendar *cal = [NSCalendar currentCalendar];

// Start of week:
NSDateComponents *comp = [[NSDateComponents alloc] init];
comp.weekday = cal.firstWeekday;
comp.weekOfYear = 1; // <-- fill in your week number here
comp.year = 2015; // <-- fill in your year here
NSDate *startOfWeek = [cal dateFromComponents:comp];

// Add 6 days:
NSDate *endOfWeek = [cal dateByAddingUnit:NSCalendarUnitDay value:6 toDate:startOfWeek options:0];

// Show results:
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
fmt.dateStyle = NSDateFormatterShortStyle;
NSLog(@"%@", [fmt stringFromDate:startOfWeek]);
NSLog(@"%@", [fmt stringFromDate:endOfWeek]);

一些注意事项:

  • cal.firstWeekday 给出第一个工作日的区域相关索引,例如2 = Monday 在德国,或 1 = Sunday 在美国根据您的需要,您也可以在此处使用常量值。
  • 可能需要设置cal.minimumDaysInFirstWeek,比较 NSDateFormatter reports June 2, 2013 as being in week zero .
  • dateByAddingUnit:... 方法在 OS X 10.9 或更高版本中可用。或者,使用 dateByAddingComponents:...
  • 我假设您使用公历,因此一周有 7 天。或者,您可以加一周,然后减去一天。

关于ios - 如何在 objective-c 中获取周数的开始和结束日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27874946/

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