0

请帮帮我,我卡住了!

我正在尝试制作一个简单的日历应用程序并且很绝望。我需要一个给定年份(52 或 53)周的值,我知道这个问题的答案是使用 initRecurrenceWithFrequency。但我无法让我的代码工作!!!!请帮忙。

/约翰


@阿里软件

非常感谢!

然而这个代码片段(下面)给了我 1 而不是 53。你知道为什么吗?顺便说一句,我的模拟器设置状态为公历,作为它的日历。/约翰

 NSDateComponents *comps = [NSDateComponents alloc];
    [comps setDay:31];
    [comps setMonth:12];
    [comps  setYear:year];

    NSCalendar *usersCalendar =[[NSLocale currentLocale] objectForKey:NSLocaleCalendar];
    NSDate *date = [usersCalendar dateFromComponents:comps];

    NSDateComponents *weekComps =
    [usersCalendar components:NSWeekCalendarUnit fromDate:date];

    NSInteger totalNumberOfWeeksInThisYear = [weekComps week];
4

1 回答 1

1

如果您需要知道一年中的哪一周是给定日期,或者任何类似的东西(一年中的周数等),您应该使用NSDateComponents它。

您应该真正阅读 Apple 文档中的日期和时间编程指南。它解释了有关日期、日历和日期组件、概念和细微之处(闰年等)、与日期和日历相关的 Cocoa 类如何相互交互以及如何使用它们的所有内容。

它非常详细(实际上就像 Apple 文档中的每个编程指南一样),如果不阅读此文档,您就无法真正考虑创建日历应用程序

(顺便说一句,我不明白你如何质疑一年中的几周与?!!的initRecurrenceWithFrequency方法有关)EKRecurrenceRule

于 2012-09-14T00:00:26.320 回答