如何在iphone中找出当前年份是不是闰年[重复]

Posted

技术标签:

【中文标题】如何在iphone中找出当前年份是不是闰年[重复]【英文标题】:How to find out whether current year leap year or not in iphone [duplicate]如何在iphone中找出当前年份是否闰年[重复] 【发布时间】:2013-05-29 08:44:21 【问题描述】:

如何从 NSDate 获取当前年份以及如何在 Objective-C 中找出该年份是否是闰年?

【问题讨论】:

使用NSDateComponent提取年份,如果余数除以4为0则为闰年。 @iNoob:这是不正确的。 1900 年在公历中不是闰年。在其他日历中可能会完全不同。 @MartinR,抱歉不知道,但NSDateComponentsNSCalendar 取一个值不会有帮助吗? 模拟问题有一个很好的答案:***.com/a/2078633/309925 总有谷歌来帮你 【参考方案1】:

您可以执行以下操作:

- (BOOL)isYearLeapYear:(NSDate *) aDate 
    NSInteger year = [self yearFromDate:aDate];
    return (( year%100 != 0) && (year%4 == 0)) || year%400 == 0;


- (NSInteger)yearFromDate:(NSDate *)aDate 
    NSDateFormatter *dateFormatter = [NSDateFormatter new];
    dateFormatter.dateFormat = @"yyyy";
    NSInteger year = [[dateFormatter stringFromDate:aDate] integerValue];
    return year;

【讨论】:

严格来说,这仅对公历日历有效(但对于 OP 来说可能就足够了)。 ios 6 开始,NSDateComponents 中存在一个leapMonth 属性。虽然我无法让它工作:(除了自制公式之外,通过 Cocoa 实现它的一种方法是计算一年中的天数,或二月的月份。【参考方案2】:

***:

if year is divisible by 400 then
   is_leap_year
else if year is divisible by 100 then
   not_leap_year
else if year is divisible by 4 then
   is_leap_year
else
   not_leap_year

【讨论】:

【参考方案3】:

首先你需要使用 NSDateComponant 找到年份,如果你得到年份除以 4,那么这是闰年。

【讨论】:

也有同样的评论..!所以请检查它 这还不够(可被四整除)。请参阅菲利普的回答。【参考方案4】:
 NSDate *date = [NSDate date];
    NSLog(@"dat eis %@",date);

    NSDateFormatter *dateF = [[NSDateFormatter alloc]init];
    [dateF setDateFormat:@"YYYY"];
    NSString *dateS = [dateF stringFromDate:date ];
    NSLog(@"date is %@",dateS);

    int myInt = [dateS intValue];

    if(myInt%4== 0)

    
        NSLog(@"Its a leap year ");
    
    else
        NSLog(@"Not A leap year");
    

【讨论】:

以上是关于如何在iphone中找出当前年份是不是闰年[重复]的主要内容,如果未能解决你的问题,请参考以下文章

怎样用JAVA写判断一个年份是否闰年的程序?

用SQL语句编写程序:在计算机系统中获取当前的年份,并判断其是不是为闰年

基础练习(01)闰年判断

基础练习-1.闰年判断

lqb 基础练习 闰年判断

用java定义一个判断闰年的方法,在main方法中调用该方法判断输入的一个年份是不是是闰年!