【问题标题】:java.util.calendar behaving strangejava.util.calendar 行为奇怪
【发布时间】:2013-08-25 16:10:28
【问题描述】:

所以,我找到了 java.util.Calendar,并尝试将它用于我正在处理的 android 项目。

我完全不明白 Calendar.DAY_OF_WEEK 如何在星期四返回 7? 而现在是 8 月 Calendar.WEEK_OF_YEAR 返回 4,这根本没有任何意义!

我也尝试过 GregorianCalendar,结果完全相同。

试图找到有关它们如何计数的任何文档,但我找不到任何东西。 好像有什么很明显的东西,但我就是不知道是什么!

我写的代码在这里:

    // Get if daily or weekly
    boolean daily;
    daily = getPrefs.getBoolean("checkbox_daily", false);
    String day = "0";
    if (daily){
        switch(GregorianCalendar.DAY_OF_WEEK){
            case GregorianCalendar.MONDAY:
                Do_stuff();
                break;
            case GregorianCalendar.TUESDAY:
                Do_stuff();
                break;
            case GregorianCalendar.WEDNESDAY:
                Do_stuff();
                break;
            case GregorianCalendar.THURSDAY:
                Do_stuff();
                break;
            case GregorianCalendar.FRIDAY:
                Do_stuff();
                break;
        }
    }

【问题讨论】:

    标签: java date calendar java.util.calendar


    【解决方案1】:

    GregorianCalendar.DAY_OF_WEEK 是常数,

    你需要calendarInstance.get(GregorianCalendar.DAY_OF_WEEK);

    【讨论】:

      【解决方案2】:

      来自java.util.Calendar docs:

      日历使用两个 参数:一周的第一天和 first 中的最少天数 周(从 1 到 7)。这些数字取自语言环境资源 构建日历时的数据。它们也可以被指定 明确地通过设置它们的值的方法。

      在设置或获取 WEEK_OF_MONTH 或 WEEK_OF_YEAR 字段时, 日历必须将月份或年份的第一周确定为 参照点。一个月或一年的第一周被定义为 从 getFirstDayOfWeek() 和 至少包含该月的 getMinimalDaysInFirstWeek() 天或 年。周数 ..., -1, 0 在第一周之前;周数 2, 3,... 跟着它。请注意,归一化编号返回 get() 可能不同。例如,一个特定的 Calendar 子类可能 将一年中第 1 周的前一周指定为前一周的第 n 周 年。

      【讨论】:

        猜你喜欢
        • 2013-01-14
        • 1970-01-01
        • 1970-01-01
        • 2022-01-24
        • 2016-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多