首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何设置日历双周刊

我如何设置日历双周刊
EN

Stack Overflow用户
提问于 2019-03-28 00:13:09
回答 2查看 199关注 0票数 0

我有我的小代码,我想得到双周刊,但似乎不能正确的。如何在日历类中显示每周一次。在我的上,我只是随机输入了代码。

代码语言:javascript
复制
   case "Bi-Weekly": {
                beginCalendar.add(Calendar.DAY_OF_MONTH, Calendar.WEDNESDAY);
                break;
            }
case "Month": {
                beginCalendar.add(Calendar.MONTH, 1);
                break;
            }


            case "Quarterly": {
                beginCalendar.add(Calendar.MONTH, 3);
                break;
            }
            case "Half Yearly": {
                beginCalendar.add(Calendar.MONTH, 6);
                break;
            }
            case "Year": {
                beginCalendar.add(Calendar.MONTH, 12);
                break;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-28 00:18:01

我认为

代码语言:javascript
复制
.add(Calendar.WEEK_OF_YEAR,2);

是对的,即使我会做一些关于它在一年中的变化行为的测试。

票数 0
EN

Stack Overflow用户

发布于 2019-03-28 16:50:47

java.time

代码语言:javascript
复制
    LocalDate date = LocalDate.of(2019, Month.DECEMBER, 25);

    switch (recurrence) {
        case "Bi-Weekly": {
            date = date.plusWeeks(2);
            break;
        }
        case "Month": {
            date = date.plusMonths(1);
            break;
        }
        case "Quarterly": {
            date = date.plusMonths(3);
            break;
        }
        case "Half Yearly": {
            date = date.plusMonths(6);
            break;
        }
        case "Year": {
            date = date.plusYears(1);
            break;
        }

        default:
            System.err.println("Unrecognized recurrence: " + recurrence);
            break;
    }

    System.out.println("Added for " + recurrence + " gave: " + date);

用不同的字符串(以不同的顺序)尝试代码,会给出如下结果:

每周加: 2020-01-08加年:2020年-12-25加作季刊分配: 2020-03-25加作半年发: 2020-06-25加月:

你的日历也有一天的时间吗?没问题:如果使用ZonedDateTimeLocalDateTime而不是LocalDate,代码的工作方式是相同的。

您使用的Calendar类设计很差,而且已经过时了。我发现java.time (现代java.time和time )使用起来要好得多。所以我想给你看这个选项。

问:我可以在安卓系统上使用java.time吗?

是的,java.time在较旧的和更新的安卓设备上运行得很好。它只需要至少Java 6

  • 在Java 8和更高版本以及更新的Android设备上(从API级别26),现代API是内置的。
  • 在Java6和7中,获取ThreeTen Backport,这是现代类的后端(ThreeTen用于JSR 310;参见底部的链接)。
  • 在(旧版) Android上,使用安卓版本的ThreeTen Backport。它叫ThreeTenABP。并确保使用子包从org.threeten.bp导入日期和时间类。

链接

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55388347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档