Ios NSDate月差
我面临一个问题。我正在从用户处获取开始日期和结束日期。我在UI中显示这些月份 第一个问题:如果用户给出了同一个月的不同日期(如2013-01-10和2013-01-25),而我试图得到当时两个日期的差值,则月差显示为零个月。如何获得月差,包括开始日期月和结束日期月 第二个问题:如果用户给出不同的日期,如2013-01-29和2013-02-01,它仍然给我零月差。如何克服这两个问题?在这两种情况下,我得到的结果都是一样的。我如何区分Ios NSDate月差,ios,nsdate,Ios,Nsdate,我面临一个问题。我正在从用户处获取开始日期和结束日期。我在UI中显示这些月份 第一个问题:如果用户给出了同一个月的不同日期(如2013-01-10和2013-01-25),而我试图得到当时两个日期的差值,则月差显示为零个月。如何获得月差,包括开始日期月和结束日期月 第二个问题:如果用户给出不同的日期,如2013-01-29和2013-02-01,它仍然给我零月差。如何克服这两个问题?在这两种情况下,我得到的结果都是一样的。我如何区分 谢谢。您可以在Github上查看此项目: 即使您不能使用整个
谢谢。您可以在Github上查看此项目: 即使您不能使用整个库,您也可以查看使其发生的代码。有一种方法正是您所需要的:
- (NSInteger)mt_monthsSinceDate:(NSDate *)date;
你可以试试这个
NSString *fromDateString = @"2013-01-10";
NSString *toDateString = @"2013-01-25";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd"];
NSDate * fromDate = [formatter dateFromString:fromDateString];
NSDate *toDate = [formatter dateFromString:toDateString];
NSCalendar *calender = [NSCalendar currentCalendar];
NSUInteger units = (NSMonthCalendarUnit|NSDayCalendarUnit);
NSDateComponents *dateComponents = [calender components:units fromDate:fromDate toDate:toDate options:0];
NSString *duration = nil;
if (dateComponents.month) {
//Different months
duration = [NSString stringWithFormat:@"%d months",dateComponents.month];
}else{
//Same month
duration = [NSString stringWithFormat:@"%d days",dateComponents.day];
}
NSLog(@"Duration : %@",duration);
你能给我们看一下你的密码吗?对不起,我不能。违反了公司规定。所以…如果你不能发布密码,你不应该在这里问。或者,你可以写一两行来说明这个想法。