农历年的生成算法

@Test
    public void sort() {
        String[] 天干 = new String[]{
                "甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"
        };
        String[] 地支 = new String[]{
                "子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"
        };
        String[] 五行 = new String[]{
                "木", "火", "土","金", "水"
        };

        String[] 阴阳 = new String[]{
                "阳", "阴"
        };
        int a=天干.length;
        int b=地支.length;
        int c=五行.length;

        int year = LocalDate.now().getYear();
        year=jiazi(year);
        for(int i=0;i<60;i++){
            if(i%10==0){
                System.out.println();
            }
            System.out.print((year++)+"_"+天干[i%a]+地支[i%b]+ "_"+五行[(i/2)%c]+"_"+阴阳[i%2]+"   ");
        }
    }

    private int jiazi(int year) {
	    int jiazi=0;
	    for(int i=year;i>year-60;i--){
	        if(i%60==4){
                jiazi=i;
            }
        }
	    return jiazi;
    }

1984_甲子_木阳   1985_乙丑_木阴   1986_丙寅_火阳   1987_丁卯_火阴   1988_戊辰_土阳   1989_己巳_土阴   1990_庚午_金阳   1991_辛未_金阴   1992_壬申_水阳   1993_癸酉_水阴   
1994_甲戌_木阳   1995_乙亥_木阴   1996_丙子_火阳   1997_丁丑_火阴   1998_戊寅_土阳   1999_己卯_土阴   2000_庚辰_金阳   2001_辛巳_金阴   2002_壬午_水阳   2003_癸未_水阴   
2004_甲申_木阳   2005_乙酉_木阴   2006_丙戌_火阳   2007_丁亥_火阴   2008_戊子_土阳   2009_己丑_土阴   2010_庚寅_金阳   2011_辛卯_金阴   2012_壬辰_水阳   2013_癸巳_水阴   
2014_甲午_木阳   2015_乙未_木阴   2016_丙申_火阳   2017_丁酉_火阴   2018_戊戌_土阳   2019_己亥_土阴   2020_庚子_金阳   2021_辛丑_金阴   2022_壬寅_水阳   2023_癸卯_水阴   
2024_甲辰_木阳   2025_乙巳_木阴   2026_丙午_火阳   2027_丁未_火阴   2028_戊申_土阳   2029_己酉_土阴   2030_庚戌_金阳   2031_辛亥_金阴   2032_壬子_水阳   2033_癸丑_水阴   
2034_甲寅_木阳   2035_乙卯_木阴   2036_丙辰_火阳   2037_丁巳_火阴   2038_戊午_土阳   2039_己未_土阴   2040_庚申_金阳   2041_辛酉_金阴   2042_壬戌_水阳   2043_癸亥_水阴

LunariCal - 农历iCal文件生成器使用说明 v1.13 - 2013-01-06 1. 可生成1901至2050之间包含农历日期、农历节日和节气等信息的iCal文件,便于用户导入到Google日历同步到手机上查看。 2. 份选择下拉列表只显示当到2050之间的份,如需要生成以前的份请自行输入,每次只生成1农历信息。如需要生成多个份的iCal文件,请勾选【结束】项并选择结束份,届时会生成对应份的iCal文件,每个份对应一个文件,请自行选择导入。 3. 为在手机上节省显示空间,【普通格式】生成农历信息只显示农历日期不显示农历月份,每月初一显示该农历月份,若同一天既有节日又有节气,则按选择分别显示“节日”、“节气”或“节日/节气”。 4. 【普通格式】生成农历信息是包含有节日节气信息的,如果希望只显示农历日期而不需要节日节气信息,可在【农历信息内容控制】中勾选【无节日节气】。 5. 【普通格式】生成农历信息只显示农历“日期”,还可在【农历信息内容控制】中选择输出显示“月份+日期”、“节日和节气”或是只显示“节气”。 6. 【自定义格式】用于生成不同格式的农历信息内容,在内容格式框进行格式编辑,特定的信息内容可通过备选内容框选择,编辑同时底部预览框会有即时效果预览,选择预览日期可以查看不同日期下的格式效果。勾选【处理空格】后会把输出内容中的多余空格合并为一个空格。 7. 【自定义格式】中的默认格式只是为了尽量多的展示备选内容效果,输出内容较长,请自行编辑符合自己要求的格式效果。 8. 生成的iCal文件会被命名为“LunariCal_份_yyyymmdd-hhmmss.ics”,份为生成农历信息的所选择的份,yyyymmdd为生成日期,hhmmss为生成时间,该文件会被保存在LunariCal执行文件所在的目录,为避免乱码文件输出使用UTF8编码。 9. 【打开所文件夹】能够直接打开LunariCal程序文件所在的文件夹,方便定位生成的ical文件。 10. 【控制】菜单中的【使用冬,腊月显示】用于选择是否把农历的十一月和十二月显示为冬月和腊月,默认启用。 11. 【控制】菜单中的【生成后弹出提示框】可控制成功生成iCal文件后是否弹出提示对话框,若要连续生成多个iCal文件为了方便可关闭该项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大巨魔战将

如果对您有帮助,请打赏1分钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值