Ios 我想在NSDateComponents类中获得四分之一的值
我想从指定日期获取四分之一的值。(*日期变量) 所以。我已经编写了以下代码并运行了。 但是,四分之一的价值是零 为什么四分之一的价值是零? 哪里有问题 请先进的人提出建议Ios 我想在NSDateComponents类中获得四分之一的值,ios,objective-c,nscalendar,nsdatecomponents,Ios,Objective C,Nscalendar,Nsdatecomponents,我想从指定日期获取四分之一的值。(*日期变量) 所以。我已经编写了以下代码并运行了。 但是,四分之一的价值是零 为什么四分之一的价值是零? 哪里有问题 请先进的人提出建议 NSDateComponents *comp1 = [[NSDateComponents alloc] init]; [comp1 setYear:2012]; [comp1 setMonth:6]; [comp1 setDay:1]; NSCalendar *gregorian = [[NSCalendar alloc]
NSDateComponents *comp1 = [[NSDateComponents alloc] init];
[comp1 setYear:2012];
[comp1 setMonth:6];
[comp1 setDay:1];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comp1]; <== want to get a quarter value.
unsigned int unitFlags = NSYearCalendarUnit | NSQuarterCalendarUnit | NSMonthCalendarUnit | NSWeekOfYearCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *comp2 = [gregorian components:unitFlags fromDate:date];
NSLog(@"year : %5d",[comp2 year]);
NSLog(@"quarter : %5d",[comp2 quarter]);
NSLog(@"month : %5d",[comp2 month]);
NSLog(@"weekofYear : %5d",[comp2 weekOfYear]);
NSLog(@"day : %5d",[comp2 day]);
似乎存在忽略NSU的问题(尚未验证,但确实看到报告的错误)。不管怎样,这很简单,可以四处走动。。。只需使用NSDateFormatter类
// After your NSDate *date, add...
NSDateFormatter *quarterOnly = [[NSDateFormatter alloc]init];
[quarterOnly setDateFormat:@"Q"];
int quarter = [[quarterOnly stringFromDate:date] intValue];
// Then change the quarter NSLog too
NSLog(@"quarter : %5d", quarter);
应该很好…2014年12月16日
简单地说:
([comp2月]-1)/3+1 以上代码很好地工作。我想知道原因。感谢您的回答。NSLog(@“季度:%5d”,(0==[comp2季度])?([comp2月]-1)/3+1:[comp2季度];很难相信这样一个假设为公历的老错误(Swift 3.1)还在发生。
// After your NSDate *date, add...
NSDateFormatter *quarterOnly = [[NSDateFormatter alloc]init];
[quarterOnly setDateFormat:@"Q"];
int quarter = [[quarterOnly stringFromDate:date] intValue];
// Then change the quarter NSLog too
NSLog(@"quarter : %5d", quarter);