package com.fangdi.workflow.definition.webService;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test1 {
public static void main(String[] args) {
// 调用农历日期转换阳历日期方法
String str = new Calendar().sCalendarLundarToSolar(2015, 1, 1);
System.out.println(nDaysAfterOneDateString(str,1));
}
public static String nDaysAfterOneDateString(String basicDate,int n) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date tmpDate = null;
try {
tmpDate = df.parse(basicDate);
}
catch(Exception e){
}
long nDay=(tmpDate.getTime()/(24*60*60*1000)+1-n)*(24*60*60*1000);
tmpDate.setTime(nDay);
return df.format(tmpDate);
}
static class Calendar {
private final int[] iLunarMonthDaysTable = {
0x4ae0,
0xa570,
0x5268,
0xd260,
0xd950,
0x6aa8,
0x56a0,
0x9ad0,
0x4ae8,
0x4ae0, // 1910
0xa4d8,
0xa4d0,
0xd250,
0xd548,
0xb550,
0x56a0,
0x96d0,
0x95b0,
0x49b8,
0x49b0, // 1920
0xa4b0,
0xb258,
0x6a50,
0x6d40,
0xada8,
0x2b60,
0x9570,
0x4978,
0x4970,
0x64b0, // 1930
0xd4a0,
0xea50,
0x6d48,
0x5ad0,
0x2b60,
0x9370,
0x92e0,
0xc968,
0xc950,
0xd4a0, // 1940
0xda50,
0xb550,
0x56a0,
0xaad8,
0x25d0,
0x92d0,
0xc958,
0xa950,
0xb4a8,
0x6ca0, // 1950
0xb550,
0x55a8,
0x4da0,
0xa5b0,
0x52b8,
0x52b0,
0xa950,
0xe950,
0x6aa0,
0xad50, // 1960
0xab50,
0x4b60,
0xa570,
0xa570,
0x5260,
0xe930,
0xd950,
0x5aa8,
0x56a0,
0x96d0, // 1970
0x4ae8, 0x4ad0,
0xa4d0,
0xd268,
0xd250,
0xd528,
0xb540,
0xb6a0,
0x96d0,
0x95b0, // 1980
0x49b0, 0xa4b8, 0xa4b0,
0xb258,
0x6a50,
0x6d40,
0xada0,
0xab60,
0x9370,
0x4978, // 1990
0x4970, 0x64b0, 0x6a50, 0xea50,
0x6b28,
0x5ac0,
0xab60,
0x9368,
0x92e0,
0xc960, // 2000
0xd4a8, 0xd4a0, 0xda50, 0x5aa8, 0x56a0,
0xaad8,
0x25d0,
0x92d0,
0xc958,
0xa950, // 2010
0xb4a0, 0xb550, 0xb550, 0x55a8, 0x4ba0, 0xa5b0,
0x52b8,
0x52b0,
0xa930,
0x74a8, // 2020
0x6aa0, 0xad50, 0x4da8, 0x4b60, 0x9570, 0xa4e0, 0xd260,
0xe930,
0xd530,
0x5aa0, // 2030
0x6b50, 0x96d0, 0x4ae8, 0x4ad0, 0xa4d0, 0xd258, 0xd250, 0xd520,
0xdaa0,
0xb5a0, // 2040
0x56d0, 0x4ad8, 0x49b0, 0xa4b8, 0xa4b0, 0xaa50, 0xb528, 0x6d20,
0xada0, 0x55b0 // 2050
};
private final char[] iLunarLeapMonthTable = { 0x00, 0x50, 0x04,
0x00, 0x20, // 1910
0x60, 0x05, 0x00, 0x20, 0x70, // 1920
0x05, 0x00, 0x40, 0x02, 0x06, // 1930
0x00, 0x50, 0x03, 0x07, 0x00, // 1940
0x60, 0x04, 0x00, 0x20, 0x70, // 1950
0x05, 0x00, 0x30, 0x80, 0x06, // 1960
0x00, 0x40, 0x03, 0x07, 0x00, // 1970
0x50, 0x04, 0x08, 0x00, 0x60, // 1980
0x04, 0x0a, 0x00, 0x60, 0x05, // 1990
0x00, 0x30, 0x80, 0x05, 0x00, // 2000
0x40, 0x02, 0x07, 0x00, 0x50, // 2010
0x04, 0x09, 0x00, 0x60, 0x04, // 2020
0x00, 0x20, 0x60, 0x05, 0x00, // 2030
0x30, 0xb0, 0x06, 0x00, 0x50, // 2040
0x02, 0x07, 0x00, 0x50, 0x03 // 2050
};
private final char[] iSolarLunarOffsetTable = { 49, 38, 28, 46,