色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java怎么把和歷轉成西歷

黃文隆1年前7瀏覽0評論

Java是一種強大的編程語言,它不僅可以開發各種應用程序,還可以進行日期計算。在Java中,我們可以將和歷轉換為西歷,在本文中,我們將介紹如何使用Java進行和歷到西歷的轉換。

/**
 * 和歷轉西歷
 * 
 * @param year  和歷年份
 * @param month 和歷月份
 * @param day   和歷日期
 * @return 西歷日期
 */
public static String chineseToGregorian(int year, int month, int day) {
int[] lunarMonthDays = new int[] { 48, 29, 30, 29, 30, 29, 30, 30, 29, 30, 29, 30 };
int days = 0;
for (int i = 1; i< month; i++) {
days += lunarMonthDays[i];
}
days += day;
if (month >2) {
days += leapMonthDays(year);
}
GregorianCalendar gc = new GregorianCalendar(year, 0, 31);
gc.add(Calendar.DATE, days - 1);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(gc.getTime());
}
/**
 * 獲取閏月天數
 * 
 * @param year 和歷年份
 * @return 閏月天數
 */
private static int leapMonthDays(int year) {
if (leapMonth(year) == 0) {
return 0;
} else {
if (leapMonth(year)<= 7 && leapMonth(year) != 0) {
return (1 + ((leapMonth(year) - 1) % 2)) * 29;
} else {
return (1 + (leapMonth(year) % 2)) * 29;
}
}
}
/**
 * 獲取閏月
 * 
 * @param year 和歷年份
 * @return 閏月,0表示無閏月
 */
private static int leapMonth(int year) {
return (lunarData[year - 1900] & 0xf);
}

以上是實現和歷轉西歷的代碼,其中我們通過計算每個月的天數來獲取和歷日期在一年中的天數,然后根據閏年規則計算出西歷日期。在根據計算的西歷日期創建GregorianCalendar對象,然后使用SimpleDateFormat格式化輸出。