Tag: nsdatecomponents

如何获得两个NSDateComponents之间的NSDateComponents?

我有两个NSDateComponents ,我想在这两个之间的所有NSDateComponents ,我已经尝试了以下, NSDateComponents *first = …; NSDateComponents *second = …; BOOL boolDone = NO; while (!boolDone) { [array addObject:first]; first.day+=1; NSLog(@"%@",first); if([[first date] compare:[second date]] == NSOrderedSame) { boolDone = YES; } } NSLog(@"All dates : %@",array); 循环后,它只是打印我在第一个 NSDateComponent的date…! 怎么了? 这是一个要理解的日志 2014-01-18 19:47:16.413 testCalendar [4274:a0b] Calendar Year: 2014 Month: 1 Leap month: no Day: […]

NSDate早1小时?

我正在使用下面的代码来设置一个date对象: NSDate *date = [NSDate date]; NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar]; NSDateComponents *components = [gregorian components: NSUIntegerMax fromDate: date]; [components setHour: 18]; [components setMinute: 00]; [components setSecond: 00]; reminderDate = [gregorian dateFromComponents: components]; 但是,当我NSLog提醒date我得到以下输出: Time: 2012-08-29 17:00:00 +0000 哪一个是早一个小时 ,任何人都可以解释什么是我需要做的,以便在reminderDate中存储正确的date? 谢谢, Tysin

NSCalendar查找本月的周六和周日

我正在项目中,我想在我的应用程序中集成NSCalendarfunction。 因此,我GOOGLE了,我发现这个解决scheme。 它给了我一年中的所有月份,也可以select特定的date。 没关系。 但是我想每个星期六和星期天禁用每个月我试图做,但是当我点击上个月或下个月它改变select。 我经历了几乎所有的stackoverflow问题,但我没有find正确的方法来做到这一点。 我要求你所有有没有灵活的解决scheme,我可以禁用周末和任何特定的date。 stream程应该是这样的: 运行应用程序当前的月份是显示和所有星期天禁用。 当点击下个月或上个月时,相应的sat&sun应该按照当月的时间被禁用。 我想禁用的任何特定date的function。

IOS6上的NSDateComponents无法正常工作?

我有一个简单的程序与IOS4和5一起工作。现在与IOS 6我收到以下错误信息: 2012-10-05 11:08:16.386 app[1698:19d03] 2012-10-05 09:08:11 +0000 2012-10-05 11:08:18.072 app[1698:19d03] 2012-10-05 09:08:11 +0000 2012-10-05 11:08:19.273 app[1698:19d03] 2012-10-05 09:08:11 +0000 2012-10-05 11:08:19.274 app[1698:19d03] 2012-10-05 09:08:11 +0000 2012-10-05 11:08:19.275 app[1698:19d03] 0 2012-10-05 11:08:25.055 app[1698:19d03] 2011-10-05 09:08:11 +0000 2012-10-05 11:08:25.823 app[1698:19d03] ( "<UILongPressGestureRecognizer: 0xa167f60; state = Possible; view = <UITableViewCellContentView 0xa168000>; target= <(action=_longPressGestureRecognized:, target=<UIPickerTableViewWrapperCell 0xa168090>)>>") 2012-10-05 11:08:25.824 […]

NSDateComponents时间configuration文件

我的问题是与下面的代码片段中给出的NSDateComponents操作的时间configuration文件。 我有一个方法迭代大量的NSDate对象 部分方法要求我放弃每个date的小时,分​​钟和秒。 要做到这一点,我有3个步骤: 我从我的原始date创build一个NSDateComponents对象。 我将H:M:S元素设置为0 我得到我的新date对象的H:M:S设置为0根据需要 问题: 上面的步骤1和步骤3占我整体方法执行时间的很大一部分,分别是22.4%和56.8%。 我正在寻找关于如何优化我的代码的这部分或者将H:M:S置零的替代方法的build议。 NSDate* date = [[NSDate alloc] init]; // Next line takes 22.4% of the overall method execution time NSDateComponents* components = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSSecondCalendarUnit) fromDate:date]; [components setHour:0]; [components setMinute:0]; [components setSecond:0]; // Next line takes 56.8% of the overall […]

Objective-C / iOS:获取某一周的特定date(星期日)

我需要在当周得到某一天(星期天)的date。 我使用这个date来确定是否应该发生每周重置,并且我在最近的重置date前做了一些计算是在星期date之前等。这主要是问了很多次,而且我的解决scheme已经在过去6个月工作了。 但今天,2013年12月29日,它停止工作。 目前使用的function: + (NSDate *) getSundaysDate{ NSDate *currentDate = [NSDate date]; NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; [gregorian setFirstWeekday:1]; NSDateComponents *components = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit | NSWeekCalendarUnit) fromDate:currentDate]; NSDateComponents *dt = [[NSDateComponents alloc]init]; [dt setWeek:[components week]]; [dt setWeekday:1]; [dt setMonth:[components month]]; [dt setYear:[components year]]; return [gregorian dateFromComponents:dt]; } […]

IOS:NSDate的问题

我有这个代码: NSDateComponents *components = [[[NSDateComponents alloc] init] autorelease]; [components setYear:2011]; [components setDay:1]; [components setMonth:4]; NSCalendar *gregorianCalendar = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease]; NSDate *firstDate = [gregorianCalendar dateFromComponents:components]; NSLog(@"date:%@", firstDate); 在控制台中的结果是: date:2011-03-31 为什么???? 如果我设置“setDay:1”,它会是“date:2011-04-01”,不是?

NSDate保存为plist时的行为

我从[NSdatedate]创builddate并将其保存为plist,以下是我如何创builddate – (void)applicationWillResignActive:(UIApplication *)application { NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; // [gregorian setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]]; NSDateComponents *weekdayComponents = [gregorian components:(NSDayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSMinuteCalendarUnit)fromDate:[NSDate date]]; NSInteger day = [weekdayComponents day]; NSInteger month = [weekdayComponents month]; NSInteger year = [weekdayComponents year]; NSDateComponents *timeZoneComps=[[NSDateComponents alloc] init]; [timeZoneComps setDay:day]; [timeZoneComps setMonth:month]; [timeZoneComps setYear:year]; [timeZoneComps setHour:00]; [timeZoneComps […]

在没有“时区更正”的情况下从组件创buildNSDate

我有一个function func createDate(day: Int, month: Int, year: Int) -> NSDate { var comp = NSDateComponents() comp.day = day comp.month = month comp.year = year var cal = NSCalendar.currentCalendar() if var date = cal.dateFromComponents(comp) { return date } return NSDate() } 如果我打电话给 createDate(07, 01, 1984) 产量是1984-01-06 23:00:00 +0000 。 我假设时区有一些影响。 我怎样才能调整我的代码,使输出将是1984-01-07 00:00:00 +0000 ? 我在这里错了什么? 我怎么困惑?

NSDateComponents工作日不显示正确的工作日?

我得到了一个N​​SDate例如1/6 – 12(星期五),并试图找出它是什么工作日。 我的星期一从星期一开始,星期五应该是星期五。 NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; [calendar setFirstWeekday:2]; NSDateComponents *components = [calendar components:NSWeekdayCalendarUnit fromDate:firstOfJulyDate]; NSLog(@"weekday %i",components.weekday); 输出:工作日6 无论我设置setFirstWeekday什么,输出将永远是6.我做错了什么?