ios - 如何使用 iOS 的 initRecurrenceWithFrequency 获取 NSInteger(52 或 53)形式的weeksOfTheYear?我

标签 ios date calendar

请帮帮我,我被困住了!

我正在尝试制作一个简单的日历应用程序,并且非常绝望。我需要给定年份的周数(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];

最佳答案

如果您需要知道给定日期是一年中的哪一周,或任何类似的信息(一年中的周数等),您应该使用 NSDateComponents 来实现。

你真的应该阅读 Date and Time Programming Guide 在苹果文档中。它解释了有关日期、日历和日期组件的所有内容、概念和微妙之处(闰年等)、与日期和日历相关的 Cocoa 类如何相互作用以及如何使用它们。

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

(顺便说一句,我不明白您对一年中的几周的疑问与 EKRecurrenceRuleinitRecurrenceWithFrequency 方法有什么关系?!!)

关于ios - 如何使用 iOS 的 initRecurrenceWithFrequency 获取 NSInteger(52 或 53)形式的weeksOfTheYear?我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12416182/

相关文章:

iphone - 如何将 UItextfield 属性分配给另一个 UItextfield

php - 获取codeigniter事件记录中用户的上个月和当月记录

android - 在 Android 上添加日历

iphone - 在 iOS 中将事件添加到生日日历

ios - 在选项卡栏 Controller 中嵌入导航 Controller 会更改 View Controller 的安全区域

ios - 在 SWIFT 4 中将文本字段限制为仅正整数

android - iOS、Android、Blackberry 等,哪个移动操作系统对黑客最友好?

JavaScript 日期时间不工作

PHP 设置日期 ('w' ) 函数将星期日返回为 7,而不是 0

ios - 保存多个 Google 日历事件时缺少 EKEvents