package me.ji5.data; import com.ibm.icu.util.Calendar; import com.ibm.icu.util.ChineseCalendar; /** * Created by ohjongin on 14. 1. 10. */ public class LunarCalendar { private Calendar mSolarCal; private ChineseCalendar mLunarCal; public LunarCalendar() { mSolarCal = Calendar.getInstance(); mLunarCal = new ChineseCalendar(); } /** * 양력(yyyyMMdd) -> 음력(yyyyMMdd) * */ public ChineseCalendar toLunar(int year, int month, int day) { mSolarCal.set(Calendar.YEAR, year); mSolarCal.set(Calendar.MONTH, month - 1); mSolarCal.set(Calendar.DAY_OF_MONTH, day); mLunarCal.setTimeInMillis(mSolarCal.getTimeInMillis()); return mLunarCal; } /** * 음력(yyyyMMdd) -> 양력(yyyyMMdd) * */ public Calendar fromLunar(int year, int month, int day) { mLunarCal.set(ChineseCalendar.EXTENDED_YEAR, year + 2637); mLunarCal.set(ChineseCalendar.MONTH, month - 1); mLunarCal.set(ChineseCalendar.DAY_OF_MONTH, day); mSolarCal.setTimeInMillis(mLunarCal.getTimeInMillis()); return mSolarCal; } public ChineseCalendar getChineseCalendar() { return mLunarCal; } public Calendar getCalendar() { return mSolarCal; } public static int getYear(ChineseCalendar cc) { return cc.get(ChineseCalendar.EXTENDED_YEAR) - 2637; } public static int getMonth(ChineseCalendar cc) { return cc.get(ChineseCalendar.MONTH) + 1; } public static int getDay(ChineseCalendar cc) { return cc.get(ChineseCalendar.DAY_OF_MONTH); } public static int getYear(Calendar cal) { return cal.get(Calendar.YEAR); } public static int getMonth(Calendar cal) { return cal.get(Calendar.MONTH) + 1; } public static int getDay(Calendar cal) { return cal.get(Calendar.DAY_OF_MONTH); } }