【问题标题】:Get Week Day Name for the first of the month from an NSDate从 NSDate 获取每月第一天的工作日名称
【发布时间】:2013-06-07 09:40:48
【问题描述】:

我有一个 NSDate,我想从该 NSDate 中找出当月第一天的工作日名称。例如,我得到“2013 年 5 月 15 日”,我想返回“星期三”,因为“2013 年 5 月 1 日”是星期三。这是我的测试代码;

    // Setup a Date and Formatter and load with a date
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd"];

    NSDate *date = [dateFormatter dateFromString:@"2013-05-10"];
    NSLog(@"Day In Month : %@", [dateFormatter stringFromDate:date]);

    // Setup a calendar and extract components and force to the first
    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    //NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *dateComponants = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:[NSDate date]];

    [dateComponants setDay:1];

    date = [calendar dateFromComponents:dateComponants];
    NSLog(@"First Day : %@", [dateFormatter stringFromDate:date]);

    // Change the formatter for the Day name
    [dateFormatter setDateFormat:@"EEEE"];
    NSLog(@"Day Name : %@", [dateFormatter stringFromDate:date]);

这就是我的日志所说的......

Day In Month : 2013-05-10
First Day : 2013-06-01
Day Name : Saturday

中间的六月日期在做什么?事实上,6 月 1 日是星期六,但这对我没有帮助。

感谢您的帮助。

【问题讨论】:

    标签: xcode cocoa date components weekday


    【解决方案1】:

    替换

    NSDateComponents *dateComponants = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:[NSDate date]];
    

    NSDateComponents *dateComponants = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate: date];
    

    【讨论】:

      【解决方案2】:

      我是最高级的白痴!!!!

          NSDateComponents *dateComponants = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:[NSDate date]];
      

      应该是

          NSDateComponents *dateComponants = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:date];
      

      看了一个小时……

      【讨论】:

      • 哈哈他们不是一样的吗?
      • 是的,又做了一次(现在改了),今天可能会放弃这个。
      猜你喜欢
      • 1970-01-01
      • 2013-09-22
      • 2011-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-04
      • 1970-01-01
      相关资源
      最近更新 更多