【问题标题】:Android - Calendar get (Calendar.WEEK_OF_YEAR) dosen't workAndroid - 日历获取(Calendar.WEEK_OF_YEAR)不起作用
【发布时间】:2013-10-02 10:55:07
【问题描述】:

我正在尝试获取一年中的总周数, 我使用这个指令:

Calendar now = Calendar.getInstance();
         now.set(Calendar.YEAR,annoInizio);
         now.set(Calendar.MONTH,11);
         now.set(Calendar.DATE, 30);

int settTotInizio = now.get(Calendar.WEEK_OF_YEAR);

我现在打印变量并 settTotinizio, 现在 WEEK_OF_YEAR 的值是 40,但在 settTotInizio 中是 1。

我不明白我哪里做错了。 有人可以帮我吗?

这是我的日志:

I/System.out(30038): ,firstDayOfWeek=2,minimalDaysInFirstWeek=0,ERA=1,YEAR=2013,MONTH=11,WEEK_OF_YEAR=40,WEEK_OF_MONTH=1,DAY_OF_MONTH=30,DAY_OF_YEAR=275,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=0,HOUR_OF_DAY=12,MINUTE=48,SECOND=49,MILLISECOND=762,ZONE_OFFSET=3600000,DST_OFFSET=3600000]


I/System.out(30038): settTotInizio: 1

【问题讨论】:

    标签: android get calendar


    【解决方案1】:

    月份是从零开始的,因此将月份字段设置为 11 会将其设置为十二月。 2013-12-30 是您所在地区的第 1 周。

    为什么日志首先打印第 40 周是因为在调用 set() 之后,尚未从默认的当前日期值重新计算其他字段。如果您切换了日志打印的顺序,您将获得兼容的结果,因为 get() 上的 Calendar 完成了其他日历字段。

    【讨论】:

    • 谢谢,我已经决定了! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 2012-01-25
    • 2013-05-24
    相关资源
    最近更新 更多