如何获得年份序列,因为我只获得月份序列
Posted
技术标签:
【中文标题】如何获得年份序列,因为我只获得月份序列【英文标题】:how to get year sequence as i am getting sequence of month only 【发布时间】:2015-08-14 13:00:47 【问题描述】:我使用以下代码获得月份序列
NSDate *aDate = [NSDate dateWithTimeInterval:row*30*24*60*60 sinceDate:self.earliestPresentedDate];
NSDateComponents *components = [self.calendar components:(NSEraCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit) fromDate:[NSDate date]];
NSDate *today = [self.calendar dateFromComponents:components];
components = [self.calendar components:(NSEraCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit) fromDate:aDate];
NSDate *otherDate = [self.calendar dateFromComponents:components];
if ([today isEqualToDate:otherDate])
else
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.locale = [NSLocale currentLocale];
formatter.dateFormat = @"MMM ";
[lblDate setText:[formatter stringFromDate:aDate]];
我想获取年份序列如何获取...请给出解决方案
【问题讨论】:
你能详细解释一下“一年后”吗? 分钟我想要像 2015,2016,2017 一样....... 也许我理解错了。但是你为什么不做简单的事情:+1 到上一年?components.year +=1;
怎么样?
帮自己一个忙,永远不要使用“30*24*60*60”之类的东西。它可能对您和您的测试用例有用,但时间并不像看起来那么容易。想想其他时区,闰秒,闰年,dailightsavingtime。总是通过组件来做到这一点!
【参考方案1】:
如下创建一个函数,给出明年的日期,
NSDateComponents *dayComponent = [[NSDateComponents alloc] init];
dayComponent.year = +1;
NSCalendar *theCalendar = [NSCalendar currentCalendar];
NSDate *newDate = [theCalendar dateByAddingComponents:dayComponent toDate:[NSDate date] options:0];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.locale = [NSLocale currentLocale];
formatter.dateFormat = @"yyyy";
NSString *strDate = [formatter stringFromDate:newDate];
NSLog(@"%@",strDate);
在标签中设置此日期。
上面我正在传递当前日期,所以我会得到年份:2016。
【讨论】:
感谢#Kirit Modi 我可以在选择器视图中使用此代码显示年份 对于pickerview,有一个年份数组。 是的,但我在选择器视图上使用上面的代码显示月份 ....我想显示年份【参考方案2】:简单的方法,它记录了这一年和随后的 7 年。
NSInteger howManyYears = 8;
NSInteger thisYear = [[NSCalendar currentCalendar] component:NSCalendarUnitYear fromDate:[NSDate date]];
for (NSInteger i = 0; i < howManyYears; ++i)
NSLog(@"%ld", thisYear++);
或获取字符串数组
NSMutableArray *theYears = [NSMutableArray array];
NSInteger howManyYears = 8;
NSInteger thisYear = [[NSCalendar currentCalendar] component:NSCalendarUnitYear fromDate:[NSDate date]];
for (NSInteger i = 0; i < howManyYears; ++i)
[theYears addObject:[NSString stringWithFormat:@"%ld", thisYear++]];
NSLog(@"%@", theYears);
【讨论】:
以上是关于如何获得年份序列,因为我只获得月份序列的主要内容,如果未能解决你的问题,请参考以下文章
R语言ggplot2可视化:可视化时间序列季节图使用季节图可以比较不同年份相同月份的数据差异或者相同(年/月/周等)的时间序列在同一天的数据差异(Seasonal Plot)