iPhone 日期选择器将于 12 月 27 日转到 2010 年?

标签 iphone date uidatepicker

因此,我在我的一个应用程序中实现了一个 UIDatepicker,用于安排和自动拨号电话 session ...一切都已准备就绪,除了在测试时我注意到,当日期从 12 月 26 日滚动到 12 月 27 日时,年份会发生变化到2010年。

我什至将其向前滚动到 2011 年...当 12 月 25 日更改为 26 日时,它会发生变化...但是等等...在 2012 年,它正确地滚动到 12 月 31 日 - 1 月 1 日...然后回到2013年的29日至30日。是否有某种我不知道的天文现象正在发生,或者苹果是否运行了一些我不知道的疯狂Heechee日历?日历应用程序正常工作...

最可能的解释是我错过了一些如此明显的东西,以至于当我意识到它时我会扇自己一巴掌。但是,嘿,我还没睡过……哇,我不记得是两天还是三天了。请怜悯并帮助我。

更新:所以也许这不是一件简单的事情。仍然在这里寻找答案!我真的是唯一经历过这种事的人吗?我敢打赌,当 12 月底到来时,会有更多的人遇到同样的障碍。

更新2:有人吗?仍在寻找,仍未找到...

UPDATE3:仍然没有找到解决方案。快点!这是一个有趣的谜题!

UPDATE4:仍然没有找到答案。我已经提交了该应用程序,它现在位于应用程序商店中。仍然希望看到这个问题得到解决,以便我可以更新应用程序。

最佳答案

可能存在这样的问题,当你在该月的最后一周,并且该周距离当月还剩不到 7 天时,那么 API 可能会将该周视为下个月的第一周。由于2012年12月最后一周已经有7天了,所以该月没有问题。

我也遇到了同样的问题,我已经解决了。

- (int) currentWeekOfMonth
{
    return CFCalendarGetOrdinalityOfUnit (
           CFCalendarCopyCurrent(),
           kCFCalendarUnitWeek,
           kCFCalendarUnitMonth,
           [self absoluteTime]);
}

我的要求是显示周数,为此我计算该月第一周的周数,并将其添加到该月的总周数中。

int currentWeekNumberInYear =   [_calendarInfo currentWeekOfYear];
int currentWeekNumberInMonth = [_calendarInfo currentWeekOfMonth];
currentWeekNumberInYear = currentWeekNumberInYear-currentWeekNumberInMonth +1;
currentWeekNumberInYear = currentWeekNumberInYear<0 ? (NSInteger)[_calendarInfo weeksInMonth] ==5 ?49:48   : currentWeekNumberInYear;

希望它对你有用。

关于iPhone 日期选择器将于 12 月 27 日转到 2010 年?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1745398/

相关文章:

ruby - 如何让 strptime 引发带有垃圾尾随字符的 ArgumentError

ios - 日期格式 Swift 3.0

iOS UIDatePicker显示没有时间

iphone - 在 iOS 6 中将带有 CALayer.mask 的 UIView 保存为 UIImage

ios - iphone:这个错误是什么?

python - 从包含名称+日期的字符串中提取日期

Swift 2.1 - 如何更改 uidatepicker 以便它只允许时间而不是日期?

ios - UITableViewCell 中的 UIDatePicker 无法调整大小(高度)

ios - 如何在 objective c 中缩放和滑动来自 webservise 的多个图像

iphone - 如何在没有源代码且不使用 iPhone 或 iPad 设备的情况下测试应用程序?