你好亲爱的我想检索一年中的天数,例如今天是 4 月 10 日,我知道它是每月的第 10 天,但如果我想像今天这样的一年中的一天是一年中的第 99 天怎么办。
这是我到目前为止所做的:
NSInteger todaydaysyear;
NSDateFormatter *yearlyDay = [[NSDateFormatter alloc] init];
[yearlyDay setDateFormat:@"dd-yyyy"];
NSDate *currentdateyear = [NSDate date];
NSString *cureentdatestryear = [yearlyDay stringFromDate:currentdateyear];
NSDate *startDateyear = [yearlyDay dateFromString:cureentdatestryear];
NSDateComponents *componentsyear = [[NSCalendar currentCalendar] components:NSCalendarUnitDay | NSCalendarUnitYear fromDate:startDateyear];
todaydaysyear = [componentsyear day];
NSLog(@"here is the day of the year e.g 99th day but not prints month day why%ld", (long)todaydaysyear);
打印:每月当天的10
张我想要的:一年中的第99天,耳朵计数的这一天。
答:你如何计算Objective-C中特定日期的一天?
根据 Unicode 技术标准 #35,一年中的日期用 D
(1..3 位数字(表示。请记住使用 3 位数字,因为年份可以有 365 天
[yearlyDay setDateFormat:@"DDD-yyyy"];
输出:
@"100-2018">
如果要将其存储为整数,请尝试
NSDate *currentDate = [NSDate date];
NSDateFormatter *formatter = [NSDateFormatter new];
[formatter setDateFormat:@"DDD"];
NSString *string = [formatter stringFromDate:currentDate];
NSInteger dayOfYear = [string integerValue];
使用这个。
//Assuming your calendar is initiated like this
NSCalendar *_calendar = [NSCalendar currentCalendar];
NSInteger yearlyDay;
//Fetch the weekOfYear number
NSInteger weekOfYear = [_calendar component:NSCalendarUnitWeekOfYear fromDate:[NSDate date]];
weekOfYear--;
//Fetch the weekDay number
NSInteger weekDay = [_calendar component:NSCalendarUnitWeekday fromDate:[NSDate date]];
yearlyDay = weekOfYear*7 + weekDay;
NSLog(@"%d", yearlyDay);
或者这个。
NSCalendar *gregorian =
[[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSUInteger dayOfYear =
[gregorian ordinalityOfUnit:NSCalendarUnitDay
inUnit:NSCalendarUnitYear forDate:[NSDate date]];
NSLog(@"%d", dayOfYear);