Calendar 如何使ISO8601产生希伯来语的一年中的一天,一年中的一周?

Calendar 如何使ISO8601产生希伯来语的一年中的一天,一年中的一周?,calendar,hebrew,iso8601,date-arithmetic,Calendar,Hebrew,Iso8601,Date Arithmetic,有人能想出一种方法来计算希伯来历法的一年中的一天和一年中的一周吗?我正在使用ISO 8601,它可以返回希伯来的年、月、月日和星期日。我正在尝试编写可重用的代码来计算任何律法部分(帕夏)。请查看执行此操作的命令。还有用于的端口(无耻的插件,这是我写的),和。如果可以使用Java,这很容易。“我的库”启用您想要的功能(在中): 还有更多的功能,例如考虑到前一天晚上的一天开始(包括日落的天文计算)或希伯来圣经时钟时间或不同的月份编号方案等。我很高兴我不是唯一一个认为这不可能的人! PlainDate

有人能想出一种方法来计算希伯来历法的一年中的一天和一年中的一周吗?我正在使用ISO 8601,它可以返回希伯来的年、月、月日和星期日。我正在尝试编写可重用的代码来计算任何律法部分(帕夏)。

请查看执行此操作的命令。还有用于的端口(无耻的插件,这是我写的),和。

如果可以使用Java,这很容易。“我的库”启用您想要的功能(在中):


还有更多的功能,例如考虑到前一天晚上的一天开始(包括日落的天文计算)或希伯来圣经时钟时间或不同的月份编号方案等。

我很高兴我不是唯一一个认为这不可能的人!
PlainDate iso8601 = Iso8601Format.parseDate("2018-03-16");
HebrewCalendar hc = iso8601.transform(HebrewCalendar.axis());

int hyear = hc.getYear();
HebrewMonth hmonth = hc.getMonth(); // obtains an enum
int hdayOfMonth = hc.getDayOfMonth();
Weekday hdayOfWeek = hc.getDayOfWeek(); // obtains an enum
int hdayOfYear = hc.getDayOfYear();

int weekOfYear =
    hc.get(
        CommonElements.weekOfYear(
            HebrewCalendar.axis(),
            HebrewCalendar.getDefaultWeekmodel()
        )
    );

System.out.println("year=" + hyear); // 5778
System.out.println("month=" + hmonth); // ADAR_II (technical result, see next line)
System.out.println(
    "month=" + hmonth.getDisplayName(Locale.ENGLISH, hc.isLeapYear())); // Adar

System.out.println("day-of-month=" + hdayOfMonth); // 29
System.out.println("day-of-week=" + hdayOfWeek); // FRIDAY
System.out.println("day-of-year=" + hdayOfYear); // 207
System.out.println("week-of-year=" + weekOfYear); // 30