gpt4 book ai didi

ios - 获取列出两个日期范围之间的所有月份和年份

转载 作者:行者123 更新时间:2023-11-28 21:27:28 25 4
gpt4 key购买 nike

我有一个 ios 应用程序,我想在其中获取两个日期之间的所有月份和年份列表。

例如:开始日期是今天,结束日期是 6-Jan-2015 那么输出将是 May-2016, Apr-2016, Mar-2016,......,Feb-2015, Jan -2015 在一个数组中,年份在另一个数组中,例如:2016 年、2015 年这样。

当我搜索时,我找到了一些解决方案,但所有这些解决方案都会返回两个日期之间的月数,而不是我想要的。

我用过这段代码

NSInteger month = [[[NSCalendar currentCalendar] components: NSCalendarUnitMonth
fromDate: yourFirstDate
toDate: yourSecondDate
options: 0] month];

任何人都可以指出我正确的方向。我坚持了几个小时。

提前致谢

最佳答案

NSDateFormatter *formatter=[[NSDateFormatter alloc]init];
[formatter setDateFormat:@"dd-MMM-yyyy"];
NSDate *startingDate =[NSDate date] ;
NSDate *endingDate = [formatter dateFromString:@"06-Jan-2015"];

NSDateComponents *Components = [[NSDateComponents alloc] init];

NSMutableArray *dateArray = [NSMutableArray array];
NSMutableArray *yearArray = [NSMutableArray array];
NSUInteger month=1;
NSDate *nextDate = endingDate;

do {
[formatter setDateFormat:@"MMM-yyyy"];
[dateArray insertObject:[formatter stringFromDate:nextDate] atIndex:0];

[formatter setDateFormat:@"yyyy"];

if (![yearArray containsObject:[formatter stringFromDate:nextDate]])
{
[yearArray insertObject:[formatter stringFromDate:nextDate] atIndex:0];
}

[Components setMonth:month++];
NSDate *d = [[NSCalendar currentCalendar] dateByAddingComponents:Components toDate:endingDate options:0];
nextDate = d;
} while([nextDate compare:startingDate] == NSOrderedAscending);


NSLog(@"%@",dateArray);
NSLog(@"%@",yearArray);

关于ios - 获取列出两个日期范围之间的所有月份和年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37537709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com