INNER CODE UNIT · Java

calElement

xkzhangsan/xk-time · src/main/java/com/xkzhangsan/time/LunarDate.java:499

	public static final long[] calElement(int year, int month, int day) {
		long[] nongDate = new long[8];
		int i = 0, temp = 0, leap = 0;
		LocalDateTime baseDate = LocalDate.of(1900, 1, 31).atStartOfDay();
		LocalDateTime objDate = LocalDate.of(year, month, day).atStartOfDay();
		long offset = DateTimeCalculatorUtil.betweenTotalDays(baseDate, objDate);		
		nongDate[5] = offset + 40;
		nongDate[4] = 14;
		for (i = 1900; i <= 2100 && offset > 0; i++) {
			temp = lunarYearDays(i);
			offset -= temp;
			nongDate[4] += 12;
		}
		if (offset < 0) {
			offset += temp;
			i--;
			nongDate[4] -= 12;
		}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…