/**
*@author:518ad-ccn
*date:Dec 16, 2011
*describe:计算天干地支,12生肖
*计算规则相对简单,详细计算规则请参照百度百科http://baike.baidu.com/view/13672.htm
*/
public class TianGanDizhiShengXiao{
private final static String[][] tgdz = new String[][]{
{"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"}//10天干
,{"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"}};//12地支
//12生肖,(注:12生肖对应12地支,即子鼠,丑牛,寅虎依此类推)
private final static String[] animalYear =
new String[]{"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"};
private final static int startYear = 1804;//定义起始年,1804年为甲子年属鼠
/**获取当前年份与起始年之间的差值**/
public static int subtractYear(int year){
int jiaziYear = startYear;
if(year<jiaziYear){//如果年份小于起始的甲子年(startYear = 1804),则起始甲子年往前偏移
jiaziYear = jiaziYear-(60+60*((jiaziYear-year)/60));//60年一个周期
}
return year-jiaziYear;
}
/**获取该年的天干名称**/
public static String getTianGanName(int year){
String name = tgdz[0][subtractYear(year)%10];
return name;
}
/**获取该年的地支名称**/
public static String getDiZhiName(int year){
String name = tgdz[1][subtractYear(year)%12];
return name;
}
/**
* 获取该年的天干、地支名称
* @param year 年份
* @return
*/
public static String getTGDZName(int year){
String name = getTianGanName(year)+ getDiZhiName(year);
return name;
}
/**
* 获取该年的生肖名称
* @param year 年份
* @return
*/
public static String getAnimalYearName(int year){
String name = animalYear[subtractYear(year)%12];
return name;
}
/**
* @param args
*/
public static void main(String[] args) {
int i = 0;
for(int k = startYear;k<2050;k++){
System.out.print(k+":"+getTGDZName(k)+ "年属"+getAnimalYearName(k));
if(++i%tgdz[0].length == 0){
System.out.print("\n");
}
}
//System.out.print(getTGDZName(2011));
}
}
///###########输出################//
1804:甲子年属鼠1805:乙丑年属牛1806:丙寅年属虎1807:丁卯年属兔1808:戊辰年属龙1809:己巳年属蛇1810:庚午年属马1811:辛未年属羊1812:壬申年属猴1813:癸酉年属鸡
1814:甲戌年属狗1815:乙亥年属猪1816:丙子年属鼠1817:丁丑年属牛1818:戊寅年属虎1819:己卯年属兔1820:庚辰年属龙1821:辛巳年属蛇1822:壬午年属马1823:癸未年属羊
1824:甲申年属猴1825:乙酉年属鸡1826:丙戌年属狗1827:丁亥年属猪1828:戊子年属鼠1829:己丑年属牛1830:庚寅年属虎1831:辛卯年属兔1832:壬辰年属龙1833:癸巳年属蛇
1834:甲午年属马1835:乙未年属羊1836:丙申年属猴1837:丁酉年属鸡1838:戊戌年属狗1839:己亥年属猪1840:庚子年属鼠1841:辛丑年属牛1842:壬寅年属虎1843:癸卯年属兔
1844:甲辰年属龙1845:乙巳年属蛇1846:丙午年属马1847:丁未年属羊1848:戊申年属猴1849:己酉年属鸡1850:庚戌年属狗1851:辛亥年属猪1852:壬子年属鼠1853:癸丑年属牛
1854:甲寅年属虎1855:乙卯年属兔1856:丙辰年属龙1857:丁巳年属蛇1858:戊午年属马1859:己未年属羊1860:庚申年属猴1861:辛酉年属鸡1862:壬戌年属狗1863:癸亥年属猪
1864:甲子年属鼠1865:乙丑年属牛1866:丙寅年属虎1867:丁卯年属兔1868:戊辰年属龙1869:己巳年属蛇1870:庚午年属马1871:辛未年属羊1872:壬申年属猴1873:癸酉年属鸡
1874:甲戌年属狗1875:乙亥年属猪1876:丙子年属鼠1877:丁丑年属牛1878:戊寅年属虎1879:己卯年属兔1880:庚辰年属龙1881:辛巳年属蛇1882:壬午年属马1883:癸未年属羊
1884:甲申年属猴1885:乙酉年属鸡1886:丙戌年属狗1887:丁亥年属猪1888:戊子年属鼠1889:己丑年属牛1890:庚寅年属虎1891:辛卯年属兔1892:壬辰年属龙1893:癸巳年属蛇
1894:甲午年属马1895:乙未年属羊1896:丙申年属猴1897:丁酉年属鸡1898:戊戌年属狗1899:己亥年属猪1900:庚子年属鼠1901:辛丑年属牛1902:壬寅年属虎1903:癸卯年属兔
1904:甲辰年属龙1905:乙巳年属蛇1906:丙午年属马1907:丁未年属羊1908:戊申年属猴1909:己酉年属鸡1910:庚戌年属狗1911:辛亥年属猪1912:壬子年属鼠1913:癸丑年属牛
1914:甲寅年属虎1915:乙卯年属兔1916:丙辰年属龙1917:丁巳年属蛇1918:戊午年属马1919:己未年属羊1920:庚申年属猴1921:辛酉年属鸡1922:壬戌年属狗1923:癸亥年属猪
1924:甲子年属鼠1925:乙丑年属牛1926:丙寅年属虎1927:丁卯年属兔1928:戊辰年属龙1929:己巳年属蛇1930:庚午年属马1931:辛未年属羊1932:壬申年属猴1933:癸酉年属鸡
1934:甲戌年属狗1935:乙亥年属猪1936:丙子年属鼠1937:丁丑年属牛1938:戊寅年属虎1939:己卯年属兔1940:庚辰年属龙1941:辛巳年属蛇1942:壬午年属马1943:癸未年属羊
1944:甲申年属猴1945:乙酉年属鸡1946:丙戌年属狗1947:丁亥年属猪1948:戊子年属鼠1949:己丑年属牛1950:庚寅年属虎1951:辛卯年属兔1952:壬辰年属龙1953:癸巳年属蛇
1954:甲午年属马1955:乙未年属羊1956:丙申年属猴1957:丁酉年属鸡1958:戊戌年属狗1959:己亥年属猪1960:庚子年属鼠1961:辛丑年属牛1962:壬寅年属虎1963:癸卯年属兔
1964:甲辰年属龙1965:乙巳年属蛇1966:丙午年属马1967:丁未年属羊1968:戊申年属猴1969:己酉年属鸡1970:庚戌年属狗1971:辛亥年属猪1972:壬子年属鼠1973:癸丑年属牛
1974:甲寅年属虎1975:乙卯年属兔1976:丙辰年属龙1977:丁巳年属蛇1978:戊午年属马1979:己未年属羊1980:庚申年属猴1981:辛酉年属鸡1982:壬戌年属狗1983:癸亥年属猪
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:癸亥年属猪
2044:甲子年属鼠2045:乙丑年属牛2046:丙寅年属虎2047:丁卯年属兔2048:戊辰年属龙2049:己巳年属蛇