繁体   English   中英

查找两个日期之间的差值正好是1年

[英]Find difference between two dates is exactly 1 year

这是我的代码,它完美地返回两个日期之间的天数和月数。 我想验证这一点,例如两个日期之间的差应恰好为一年。例如,如果您选择2013年7月29日作为开始日期,2014年7月30日作为结束日期,则不应执行更多操作。请提前谢谢。

    NSString *sta = txtStartdate.text; // This is the start date

    NSString *en =   txtEnddate.text;   //this is end date

    NSDateFormatter *f = [[NSDateFormatter alloc] init];

    [f setDateFormat:@"dd/MM/yyyy"];

    NSDate *startDat = [f dateFromString:sta];

    NSDate *endDat = [f dateFromString:en];

    [f release];

    NSCalendar *gregorian = [[NSCalendar alloc]
                             initWithCalendarIdentifier:NSGregorianCalendar];

    NSUInteger unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit | NSYearCalendarUnit ;

    NSDateComponents *components = [gregorian components:unitFlags
                                                fromDate:startDat
                                                  toDate:endDat options:0];
    NSInteger months = [components month];
    NSInteger days = [components day];
    NSInteger years = [components year];

    NSLog(@"Number of months %d",months);

    NSLog(@"Number of days %d",days);

    NSLog(@"Number of years %d",years);

    [gregorian release];

    if(years < 1 )// This code works fine...i've edited it.. @wain helped
    {
        //

}

NSYearCalendarUnit添加到unitFlags ,然后在获取components可以请求year 这比处理leap年和天数或计算结束日期要好得多(除非您使用组件在日期中添加单个年份以获取结束日期),否则leap年会更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM