1

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

4

2 回答 2

1

看一下执行此操作的hebcal命令。还有用于JavaScript(无耻插件,它是我编写的)、JavaPerl的端口。

于 2014-06-27T05:50:13.890 回答
1

如果您可以使用 Java,这很容易。我的库Time4J启用了您想要的功能(在希伯来日历中):

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

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

于 2018-03-16T14:31:47.877 回答