zoukankan      html  css  js  c++  java
  • 获取当前是周几

    这个问题比较蛋疼,老外是周日第一天,周一第二天,

    而我们是周一第一天,周日地7天,虽然可以得到当前是周几-1然后再判断一下就行,但是还是有点不甘心~

    上网查了查,查到了代码

    NSDate *dateForMonth = [NSDate date];
        
        NSCalendar *gregorianT = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
        [gregorianT setFirstWeekday:2];
        
        NSUInteger weekDay = [gregorianT ordinalityOfUnit:NSWeekdayCalendarUnit inUnit:NSWeekCalendarUnit forDate:dateForMonth];
        NSLog(@"~~~~%d",weekDay);

    刚开始用NSDate + NSCalendar + NSDateComponents 来算,可不管怎么算都是老外的结果(周日是1)

    不知道为啥NSCalendar的 setFirstWeekday:2]不生效,可能就是不能这样用

    然后查到了上面的代码,

    [gregorianT ordinalityOfUnit:NSWeekdayCalendarUnit inUnit:NSWeekCalendarUnit forDate:dateForMonth];

    用这个实现了,我们的计算方法(周一是第一天)

    官方文档这么解释的这个方法:Returns, for a given absolute time, the ordinal number of a smaller calendar unit (such as a day) within a specified larger calendar unit (such as a week).

    就是给一个日期+一个小周期(一天weekday)+一个大周期(一个Week),然后返回值就是当前日期的小周期相对于大周期的数值

    例如:::::::当前是周二,函数计算的时候就是计算周二在一个全周(7天)里是第几个(很明显是第二个,所以返回2)

    但是这里需要设置calendar setFirstWeekDay:2](让周一是第一天)这个函数在这才生效~~~~~~

  • 相关阅读:
    java类加载全过程
    pyAggr3g470r 3.6 发布,新闻聚合器
    fourinone分布式协调设计解析
    修改openJDK7的javac,使得java支持单引号字符串
    SabreDAV 1.8.0 发布,集成 WebDAV 系统
    openSUSE 12.3 里程碑 1 发布
    GroupOffice 4.0.123 发布
    nagios总结与基本配置模板
    Zorin OS 6.1 发布,基于Ubuntu的Linux
    Ehcache 2.6.2 发布,Java 缓存框架
  • 原文地址:https://www.cnblogs.com/xyzaijing/p/3659260.html
Copyright © 2011-2022 走看看