// Path: app/src/main/java/top/soyask/calendarii/entity/LunarDay.java
// public class LunarDay implements Serializable {
// 
//     private String dayOfMonth;
//     private int year;
//     private String month;
// 
//     private String holiday; // 优先显示农历节日
//     private String solar; // 节气
//     private String era; // 农历年号
//     private String zodiac;
// 
//     public String getDayOfMonth() {
//         return dayOfMonth;
//     }
// 
//     public void setDayOfMonth(String dayOfMonth) {
//         this.dayOfMonth = dayOfMonth;
//     }
// 
//     public int getYear() {
//         return year;
//     }
// 
//     public void setYear(int year) {
//         this.year = year;
//     }
// 
//     public String getMonth() {
//         return month;
//     }
// 
//     public void setMonth(String month) {
//         this.month = month;
//     }
// 
//     public String getHoliday() {
//         return holiday;
//     }
// 
//     public void setHoliday(String holiday) {
//         this.holiday = holiday;
//     }
// 
//     public String getSolar() {
//         return solar;
//     }
// 
//     public void setSolar(String solar) {
//         this.solar = solar;
//     }
// 
//     public String getEra() {
//         return era;
//     }
// 
//     public void setEra(String era) {
//         this.era = era;
//     }
// 
//     public String getZodiac() {
//         return zodiac;
//     }
// 
//     public void setZodiac(String zodiac) {
//         this.zodiac = zodiac;
//     }
// 
//     /**
//      * @return 返回{ x月初x }形式
//      */
//     public String getLunarDate() {
//         return month + dayOfMonth;
//     }
// 
//     public String getSimpleLunar() {
// 
//         if (holiday != null) {
//             return holiday;
//         } else if (solar != null) {
//             return solar;
//         } else if (dayOfMonth.equals("初一")) {
//             return month;
//         } else {
//             return dayOfMonth;
//         }
//     }
// }
// 
// Path: app/src/main/java/top/soyask/calendarii/global/Global.java
// public static final int YEAR_END = 2100;
// 
// Path: app/src/main/java/top/soyask/calendarii/global/Global.java
// public static final int YEAR_START = 1900; //计算的起点


import java.util.Calendar;
import java.util.Date;
import top.soyask.calendarii.entity.LunarDay;
import static top.soyask.calendarii.global.Global.YEAR_END;
import static top.soyask.calendarii.global.Global.YEAR_START;

    public static final LunarDay getLunar(Calendar calendar) {
        int days = 0;
        int offset = getOffset(calendar);
        int lunarYear;
        for (lunarYear = YEAR_START; lunarYear < YEAR_END + 1 && offset > 0; lunarYear++) {
            days = daysOfYear(lunarYear);
            offset -= days;
        }
        if (offset <= 0) {
            offset += days;
            lunarYear--;
        }
        int leapMonth = monthOfLeap(lunarYear);
        boolean leap = false; //是否为闰月
        int lunarMonth;
        for (lunarMonth = 1; lunarMonth <= 12 && offset > 0; lunarMonth++) {
            if (leapMonth > 0 && lunarMonth == (leapMonth + 1) && !leap) {
                lunarMonth--;
                leap = true;
                days = daysOfLeapMonth(lunarYear);
            } else {
                days = daysOfMonth(lunarYear, lunarMonth);
            }
            offset -= days;
            if (leap && lunarMonth == (leapMonth + 1)) {
                leap = false;
            }
        }

// Path: app/src/main/java/top/soyask/calendarii/entity/LunarDay.java
// public class LunarDay implements Serializable {
// 
//     private String dayOfMonth;
//     private int year;
//     private String month;
// 
//     private String holiday; // 优先显示农历节日
//     private String solar; // 节气
//     private String era; // 农历年号
//     private String zodiac;
// 
//     public String getDayOfMonth() {
//         return dayOfMonth;
//     }
// 
//     public void setDayOfMonth(String dayOfMonth) {
//         this.dayOfMonth = dayOfMonth;
//     }
// 
//     public int getYear() {
//         return year;
//     }
// 
//     public void setYear(int year) {
//         this.year = year;
//     }
// 
//     public String getMonth() {
//         return month;
//     }
// 
//     public void setMonth(String month) {
//         this.month = month;
//     }
// 
//     public String getHoliday() {
//         return holiday;
//     }
// 
//     public void setHoliday(String holiday) {
//         this.holiday = holiday;
//     }
// 
//     public String getSolar() {
//         return solar;
//     }
// 
//     public void setSolar(String solar) {
//         this.solar = solar;
//     }
// 
//     public String getEra() {
//         return era;
//     }
// 
//     public void setEra(String era) {
//         this.era = era;
//     }
// 
//     public String getZodiac() {
//         return zodiac;
//     }
// 
//     public void setZodiac(String zodiac) {
//         this.zodiac = zodiac;
//     }
// 
//     /**
//      * @return 返回{ x月初x }形式
//      */
//     public String getLunarDate() {
//         return month + dayOfMonth;
//     }
// 
//     public String getSimpleLunar() {
// 
//         if (holiday != null) {
//             return holiday;
//         } else if (solar != null) {
//             return solar;
//         } else if (dayOfMonth.equals("初一")) {
//             return month;
//         } else {
//             return dayOfMonth;
//         }
//     }
// }
// 
// Path: app/src/main/java/top/soyask/calendarii/global/Global.java
// public static final int YEAR_END = 2100;
// 
// Path: app/src/main/java/top/soyask/calendarii/global/Global.java
// public static final int YEAR_START = 1900; //计算的起点


// Path: app/src/main/java/top/soyask/calendarii/utils/LunarUtils.java
import java.util.Calendar;
import java.util.Date;
import top.soyask.calendarii.entity.LunarDay;
import static top.soyask.calendarii.global.Global.YEAR_END;
import static top.soyask.calendarii.global.Global.YEAR_START;


    public static final LunarDay getLunar(Calendar calendar) {
        int days = 0;
        int offset = getOffset(calendar);
        int lunarYear;
        for (lunarYear = YEAR_START; lunarYear < YEAR_END + 1 && offset > 0; lunarYear++) {
            days = daysOfYear(lunarYear);
            offset -= days;
        }
        if (offset <= 0) {
            offset += days;
            lunarYear--;
        }
        int leapMonth = monthOfLeap(lunarYear);
        boolean leap = false; //是否为闰月
        int lunarMonth;
        for (lunarMonth = 1; lunarMonth <= 12 && offset > 0; lunarMonth++) {
            if (leapMonth > 0 && lunarMonth == (leapMonth + 1) && !leap) {
                lunarMonth--;
                leap = true;
                days = daysOfLeapMonth(lunarYear);
            } else {
                days = daysOfMonth(lunarYear, lunarMonth);
            }
            offset -= days;
            if (leap && lunarMonth == (leapMonth + 1)) {
                leap = false;
            }
        }

        if (offset <= 0) {