【问题标题】:Calculate Number Of Days In A Specified Month计算指定月份的天数
【发布时间】:2014-08-15 15:51:33
【问题描述】:

在 iOS 中,我想计算一个月中由月份名称指定为 NSString 的天数。

我可以得到当月的天数如下:

-(NSUInteger) getNumberOfDaysInMonth:(NSString *)monthName
{

NSCalendar *cal = [NSCalendar ];
NSRange rng = [cal rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:[NSDate date]];
NSUInteger numberOfDaysInMonth = rng.length;

return numberOfDaysInMonth;

}

当我知道目标 c 中的月份名称时,是否有一种优雅的方式来获取月份?

【问题讨论】:

  • 查看 NSDateFormatter 并使用here 描述的模式。请注意,有很多方法可以将月份表示为字符串。考虑“September”、“Sept”、“S”、“09”、“9”、“Sep”、“10 月前的一个月”。

标签: objective-c ios7 nscalendar


【解决方案1】:

例如,您可以使用:

  NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease];
  [formatter setDateFormat:@"MMM"];
  NSDate *aDate = [formatter dateFromString:@"Aug"];
  NSDateComponents *components = [[NSCalendar currentCalendar] components:NSMonthCalendarUnit fromDate:aDate];
  NSLog(@"Month: %i", [components month]);

或:

  ...
  [formatter setDateFormat:@"MMMM"];
  NSDate *aDate = [formatter dateFromString:@"August"];
  ...

【讨论】:

  • 我不在 Mac 附近试用您的代码,但它在 2 月输出了什么?因为我认为你也需要这一年。
  • 代码只返回对应月份的int,不需要添加日期或年份。
  • 知道如何获取指定年份中指定月份的天数也很好。
猜你喜欢
  • 2011-06-20
  • 2013-09-17
  • 1970-01-01
  • 2015-08-16
  • 2020-05-09
  • 2021-01-11
  • 2019-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多