- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我做了一个快速 Playground here展示 NSCalendar 的 rangeOfUnit 函数中的一个错误。
在一些初始语句之后,您可以看到我的输出
let secs = calendar.rangeOfUnit(.Second, inUnit: .Month, forDate: firstOfMonth!).length
是 60。我期待看到 2678400(60 秒 * 60 分钟 * 24 小时 * 31 天)。我做错了什么吗?
我还想我会用一个几乎微不足道的东西来强调这个函数
let months = calendar.rangeOfUnit(.Month, inUnit: .Month, forDate: firstOfMonth!).length
并对结果值 9223372036854775807 感到困惑。有人对此有解释吗?
最佳答案
我认为您正在寻找 ordinalityOfUnit()
方法
首先我们需要月末日期。
var firstOfMonth:NSDate? = nil
var seconds: NSTimeInterval = 0
calendar().rangeOfUnit(.Month, startDate: &firstOfMonth, interval: &seconds, forDate: NSDate())
let endOfMonth = firstOfMonth?.dateByAddingTimeInterval(seconds-1)
我们做不到
let secs = calendar().ordinalityOfUnit(.Second, inUnit: .Month, forDate: endOfMonth!)
secs
现在拥有 2678400
let min = calendar().ordinalityOfUnit(.Minute, inUnit: .Month, forDate: endOfMonth!)
let hour= calendar().ordinalityOfUnit(.Hour, inUnit: .Month, forDate: endOfMonth!)
9223372036854775807
10 == 11111111111111111111111111111111111111111111111111111111111111111111111111
2
这个数字是64bit中最高的Int值。
还有 NSNotFound = NSIntegerMax
func rangeOfUnit(_: inUnit:forDate:) -> NSRange
文档状态
[…] Returns {NSNotFound, NSNotFound} if larger is not logically bigger than smaller in the calendar, or the given combination of units does not make sense […]
关于swift - NSCalendar 的 calendar.rangeOfUnit 函数中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34701492/
为什么 init 不能在 NSCalendar *cal = [[NSCalendar alloc] init] 中使用,因为 init 是每个类的实例方法有吗? 最佳答案 NSCalendar 必须
我正在尝试创建 NSCalendar 的子类,但运气不佳。我尝试了两种方法: 彻底的类别。我可以创建一个修改后的对象,并且我添加的测试方法(不是 NSCalendar 的一部分)工作得很好,但重写的方
我正在尝试创建一个日/月 UIPickerView,没有年份。目标是选择一天/月份来列出当天/月份发生的历史事件。 [NSCalendar currentCalendar]maximumRangeOf
在 Mac OS X 上,如果您转到系统首选项 > 日期和时间 > 打开语言和文本 > 在顶部单击格式 >,然后在日历下拉列表中出现一个科普特日历选项。如何在 Mac 应用程序中显示此日历? 最佳答案
有谁知道是否有办法在 NSCalendar 上设置一周的第一天,或者是否有一个日历已经将星期一而不是星期日作为一周的第一天。我目前正在开发一个基于一周工作量的应用程序,它需要从周一开始,而不是周日。我
是否可以根据位置获取firstWeekday。例如,在美国应该说星期天。在俄罗斯应该说星期一。 编辑:[[NSCalendar currentCalendar] firstWeekday]总是说1,但
我正在开发一个项目,我想在我的应用程序中集成 NSCalendar 功能。因此我用谷歌搜索,发现this 解决方案。它给了我一年中的所有月份,我也可以选择特定的日期。没关系。但我想禁用每个月的所有星期
这个问题在这里已经有了答案: Getting date from [NSDate date] off by a few hours (3 个答案) NSLog showing the previo
我使用下面的代码使用随机日期计算前一个星期一。哪个工作文件,但我的代码在明年日期中断。下面是相同的代码: NSDate *date = [NSDate dateWithTimeIntervalSinc
假设以下内容适用于所有设备是否安全? let cal = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)! 我不是应用程序本
我正在尝试从日期中获取周数。有人能告诉我为什么无论我输入什么日期都只返回 0 吗: let currentWeekNumber = NSCalendar.currentCalendar().compo
我有一个函数,它根据月份和年份返回周数数组。 代码如下: let calendar = NSCalendar.currentCalendar() let weekRange = calendar.ra
我正在创建各种日历控件... 我需要知道的一件事是一个月有多少周...... 所以 NSCalendar rangeOfUnit:inUnit:forDate 似乎正是我需要的... 除了我注意到一些
我正在尝试在两个不同的日期上使用 [[NSCalendar currentCalendar] ordinalityOfUnit:NSDayCalendarUnit inUnit:NSEraCalend
我正在 viewDidLoad 中初始化 NSCalendar,如下所示: gregorian = [NSCalendar currentCalendar]; 日历在相应的 .h 文件中声明,如下所示
我希望能够在 iPhone 上使用 NSCalendar 在公历和儒略历(注意:不是“儒略日期”)之间进行转换。如何子类化 NSCalendar 以使用儒略历?我想这样做,而不考虑 1582 年或 1
我有一个方法的子集,需要获取当月的第一天。 NSDate *today = [NSDate date]; // returns correctly 28 february 2013 NSCalend
我很难理解 dateByAddingComponents 如何处理夏令时的异常。我已阅读 Apple 日期和时间编程指南,并期望 dateByAddingComponents 考虑 DST 更改。但是
在 Swift3 之前,在我的项目中我使用了这个函数: var components = (calendar as NSCalendar).components([.year, .monthSymbo
我刚刚查看了 NSCalendar.h 中的代码,如下所示: enum { NSEraCalendarUnit = kCFCalendarUnitEra, NSYearCalendar
我是一名优秀的程序员,十分优秀!