java – Calendar.UNDECIMBER做什么?
Calendar类中有一个常量,名为:UNDECIMBER.它描述了第13个月.
这个常数有用吗?在维基百科中,它写的是农历.但是这种日历没有实施. 是否存在第14个月的任何解决方案(Duodecimber)? 我在网上找不到这么多,我想更多地了解这个话题. 解决方法
如前所述,一些月球(和其他古代)日历有13个月.一个例子是
Coptic Calendar.
虽然没有实现13个月的日历扩展java.util.Calendar,但在Java 8的新API中有一些.随着new java.time API的推出,它还创建了ThreeTen Extra project,其中包含an implementation for that. 该类是org.threeten.extra.chrono.CopticChronology,它扩展了本机java.time.chrono.Chronology.我刚刚制作了一个示例代码,用于在此日历中创建日期并循环显示其日期: // Coptic calendar CopticChronology cal = CopticChronology.INSTANCE; // range for month of year (from 1 to 13) System.out.println("month range: " + cal.range(ChronoField.MONTH_OF_YEAR)); // 1 - 13 // getting a date in Coptic calendar and loop through the months DateTimeFormatter fmt = DateTimeFormatter.ofPattern("dd/MM/yyyy"); // September 11th is equivalent to 01/01 in Coptic calendar CopticDate d = cal.date(LocalDate.of(2017,9,11)); for (int i = 0; i < 14; i++) { System.out.println(fmt.format(d)); d = d.plus(1,ChronoUnit.MONTHS); } 输出是: month range: 1 - 13 01/01/1734 01/02/1734 01/03/1734 01/04/1734 01/05/1734 01/06/1734 01/07/1734 01/08/1734 01/09/1734 01/10/1734 01/11/1734 01/12/1734 01/13/1734 01/01/1735 请注意,这一年在第13个月之后发生了变化. 对于Ethiopian calendar,ThreeTen Extra项目也有an implementation,也有13个月. 而且,作为一个14个月的日历的例子,有 引用维基百科:
并根据javadoc:
例: PaxChronology paxCal = PaxChronology.INSTANCE; System.out.println("month range: " + paxCal.range(ChronoField.MONTH_OF_YEAR)); PaxDate pd = paxCal.date(1930,1,1); for (int i = 0; i < 15; i++) { // fmt is the same DateTimeFormatter from previous example System.out.println(fmt.format(pd)); // adjusting for first day of next month - using TemporalAdjuster because // adding 1 ChronoUnit.MONTHS throws an exception for 14th month (not sure why) pd = pd.plus(30,ChronoUnit.DAYS).with(TemporalAdjusters.firstDayOfMonth()); } 输出: month range: 1 - 13/14 01/01/1930 01/02/1930 01/03/1930 01/04/1930 01/05/1930 01/06/1930 01/07/1930 01/08/1930 01/09/1930 01/10/1930 01/11/1930 01/12/1930 01/13/1930 01/14/1930 01/01/1931 您可以注意到,第14个月后年份发生了变化.范围是1 – 13/14,因为几年可以有13或14个月,这取决于它是否是闰年. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 使用jsp调用javabean实现超简单网页计算器示例
- java – 是否正在创建一个用于测试不良做法的私有构造函数
- String.split(String pattern)Java方法未按预期工作
- java – 如何在其他列表的末尾添加列表的内容?
- java – 使用JAX-RS 2.0与CDI / Weld而不是Guice的优势?
- java – 如何将一个byte []附加到List?
- JAVA链接列表如何使用for循环进行循环?
- Java中的OneToMany的使用方法
- java – 为什么LinkedHashMap类实现Map接口?
- Java DriverManager.getDrivers()方法:获取全部已加载的驱