http://www.smth.edu.cn/games/wnl.html
javascript实现的

解决方案 »

  1.   

    我有一个vb的算法,你可以参考一下,有一定局限性
    VB计算农历的算法
    '下面是一个关于VB的农历算法
    '日期数据定义方法如下
    '前12个字节代表1-12月为大月或是小月,1为大月30天,0为小月29天,
    '第13位为闰月的情况,1为大月30天,0为小月29天,第14位为闰月的月
    '份,如果不是闰月为0,否则给出月份,10、11、12分别用A、B、C来表
    '示,即使用16进制。最后4位为当年家农历新年-即农历1月1日所在公历
    '的日期,如0131代表1月31日。
    'GetYLDate函数使用方式如下tYear为要输入的年,tMonth为月,tDay为
    '日期,YLyear是返回值,返加农历的年份,如甲子年,YLShuXing返回
    '的是属象,如鼠。IsGetGl是设置是不是通过农历取公历值,如果是,
    '前三个返回相应的公历日期,而且返回值是一个公历日期。Function GetYLDate(tYear As Integer, tMonth As Integer, tDay As Integer, _
                        YLyear As String, YLShuXing As String, _
                        Optional IsGetGl As Boolean) As String    On Error Resume Next
        Dim daList(1900 To 2011) As String * 18
        Dim conDate As Date, setDate As Date
        Dim AddMonth As Integer, AddDay As Integer, AddYear As Integer, getDay As Integer
        Dim RunYue As Boolean
        If tYear > 2010 Or tYear < 1901 Then Exit Function '如果不是有效有日期,退出
        '1900 to 1909
        daList(1900) = "010010110110180131"
        daList(1901) = "010010101110000219"
        daList(1902) = "101001010111000208"
        daList(1903) = "010100100110150129"
        daList(1904) = "110100100110000216"
        daList(1905) = "110110010101000204"
        daList(1906) = "011010101010140125"
        daList(1907) = "010101101010000213"
        daList(1908) = "100110101101000202"
        daList(1909) = "010010101110120122"
        daList(1910) = "010010101110000210"
        daList(1911) = "101001001101160130"
        daList(1912) = "101001001101000218"
        daList(1913) = "110100100101000206"
        daList(1914) = "110101010100150126"
        daList(1915) = "101101010101000214"
        daList(1916) = "010101101010000204"
        daList(1917) = "100101101101020123"
        daList(1918) = "100101011011000211"
        daList(1919) = "010010011011170201"
        daList(1920) = "010010011011000220"
        daList(1921) = "101001001011000208"
        daList(1922) = "101100100101150128"
        daList(1923) = "011010100101000216"
        daList(1924) = "011011010100000205"
        daList(1925) = "101011011010140124"
        daList(1926) = "001010110110000213"
        daList(1927) = "100101010111000202"
        daList(1928) = "010010010111120123"
        daList(1929) = "010010010111000210"
        daList(1930) = "011001001011060130"
        daList(1931) = "110101001010000217"
        daList(1932) = "111010100101000206"
        daList(1933) = "011011010100150126"
        daList(1934) = "010110101101000214"
        daList(1935) = "001010110110000204"
        daList(1936) = "100100110111030124"
        daList(1937) = "100100101110000211"
        daList(1938) = "110010010110170131"
        daList(1939) = "110010010101000219"
        daList(1940) = "110101001010000208"
        daList(1941) = "110110100101060127"
        daList(1942) = "101101010101000215"
        daList(1943) = "010101101010000205"
        daList(1944) = "101010101101140125"
        daList(1945) = "001001011101000213"
        daList(1946) = "100100101101000202"
        daList(1947) = "110010010101120122"
        daList(1948) = "101010010101000210"
        daList(1949) = "101101001010170129"
        daList(1950) = "011011001010000217"
        daList(1951) = "101101010101000206"
        daList(1952) = "010101011010150127"
        daList(1953) = "010011011010000214"
        daList(1954) = "101001011011000203"
        daList(1955) = "010100101011130124"
        daList(1956) = "010100101011000212"
        daList(1957) = "101010010101080131"
        daList(1958) = "111010010101000218"
        daList(1959) = "011010101010000208"
        daList(1960) = "101011010101060128"
        daList(1961) = "101010110101000215"
        daList(1962) = "010010110110000205"
        daList(1963) = "101001010111040125"
        daList(1964) = "101001010111000213"
        daList(1965) = "010100100110000202"
        daList(1966) = "111010010011030121"
        daList(1967) = "110110010101000209"
        daList(1968) = "010110101010170130"
        daList(1969) = "010101101010000217"
        daList(1970) = "100101101101000206"
        daList(1971) = "010010101110150127"
        daList(1972) = "010010101101000215"
        daList(1973) = "101001001101000203"
        daList(1974) = "110100100110140123"
        daList(1975) = "110100100101000211"
        daList(1976) = "110101010010180131"
        daList(1977) = "101101010100000218"
        daList(1978) = "101101101010000207"
        daList(1979) = "100101101101060128"
        daList(1980) = "100101011011000216"
        daList(1981) = "010010011011000205"
        daList(1982) = "101001001011140125"
        daList(1983) = "101001001011000213"
        daList(1984) = "1011001001011A0202"
        daList(1985) = "011010100101000220"
        daList(1986) = "011011010100000209"
        daList(1987) = "101011011010060129"
        daList(1988) = "101010110110000217"
        daList(1989) = "100100110111000206"
        daList(1990) = "010010010111150127"
        daList(1991) = "010010010111000215"
        daList(1992) = "011001001011000204"
        daList(1993) = "011010100101030123"
        daList(1994) = "111010100101000210"
        daList(1995) = "011010110010180131"
        daList(1996) = "010110101100000219"
        daList(1997) = "101010110110000207"
        daList(1998) = "100100110110150128"
        daList(1999) = "100100101110000216"
        daList(2000) = "110010010110000205"
        daList(2001) = "110101001010140124"
        daList(2002) = "110101001010000212"
        daList(2003) = "110110100101000201"
        daList(2004) = "010110101010120122"
        daList(2005) = "010101101010000209"
        daList(2006) = "101010101101170129"
        daList(2007) = "001001011101000218"
        daList(2008) = "100100101101000207"
        daList(2009) = "110010010101150126"
        daList(2010) = "101010010101000214"
        daList(2011) = "101101001010000214"
      

  2.   

    AddYear = tYear
        RunYue = False
        
        If IsGetGl Then
            AddMonth = Val(Mid(daList(AddYear), 15, 2))
            AddDay = Val(Mid(daList(AddYear), 17, 2))
            conDate = DateSerial(AddYear, AddMonth, AddDay)
            AddDay = tDay
            For i = 1 To tMonth - 1
                AddDay = AddDay + 29 + Val(Mid(daList(tYear), i, 1))
            Next i
            'MsgBox DateDiff("d", conDate, Date)
            setDate = DateAdd("d", AddDay - 1, conDate)
            GetYLDate = setDate
            tYear = Year(setDate)
            tMonth = Month(setDate)
            tDay = Day(setDate)
            Exit Function
        End If
    CHUSHIHUA:
        AddMonth = Val(Mid(daList(AddYear), 15, 2))
        AddDay = Val(Mid(daList(AddYear), 17, 2))
        conDate = DateSerial(AddYear, AddMonth, AddDay)
        setDate = DateSerial(tYear, tMonth, tDay)
        getDay = DateDiff("d", conDate, setDate)
        If getDay < 0 Then AddYear = AddYear - 1: GoTo CHUSHIHUA
       ' addday = NearDay
       AddDay = 1: AddMonth = 1
        For i = 1 To getDay
            AddDay = AddDay + 1
            If AddDay = 30 + Mid(daList(AddYear), AddMonth, 1) Or (RunYue And AddDay = 30 + Mid(daList(AddYear), 13, 1)) Then
                If RunYue = False And AddMonth = Val("&H" & Mid(daList(AddYear), 14, 1)) Then
                    RunYue = True
                Else
                    RunYue = False
                    AddMonth = AddMonth + 1
                End If
                AddDay = 1
            End If
            
        Next
      
        md$ = "初一初二初三初四初五初六初七初八初九初十十一十二十三十四十五十六十七十八十九二十廿一廿二廿三廿四廿五廿六廿七廿八廿九三十"
        dd$ = Mid(md$, (AddDay - 1) * 2 + 1, 2)
        mm$ = Mid("正二三四五六七八九十寒腊", AddMonth, 1) + "月"
        YouGetDate = DateSerial(AddYear, AddMonth, AddDay)
        tiangan$ = "甲乙丙丁戊已庚辛壬癸"
        dizhi$ = "子丑寅卯辰巳午未申酉戌亥"
        Dim ganzhi(0 To 59) As String * 2
        For i = 0 To 59
         ganzhi(i) = Mid(tiangan$, (i Mod 10) + 1, 1) + Mid(dizhi$, (i Mod 12) + 1, 1)
        'ff$ = ff$ + ganzhi(i)
        Next i
        'MsgBox ff$, , Len(ff$)
        YLyear = ganzhi((AddYear - 4) Mod 60)
        shu$ = "鼠牛虎兔龙蛇马羊猴鸡狗猪"
        YLShuXing = Mid(shu$, ((AddYear - 4) Mod 12) + 1, 1)
        If RunYue Then mm$ = "闰" + mm$
        
        GetYLDate = mm$ + dd$End Function
      

  3.   

    to: wdbc(wdbc for java)不用了,早就不用了!
    我要纯java写的,不要其他任何语言写的,谢谢。如果谁有时间帮我写一个,我给高分,呵呵,我实在是没有时间。项目又紧
      

  4.   

    你指的纯java 是什么意思??应用程序么?? js 也不可以?? script 也不可以?你要做什么应用?
      

  5.   

    最好是javabean的。
    谁有现成的,谢谢请帖给我。谢谢。分多少都可以。只要程序好用。项目特急。
      

  6.   

    你有email 么?我有一个 脚本的例子 如果要我可以发给你!!
      

  7.   

    看见四颗星,佩服ing...
    +up
      

  8.   

    我不要javascript的,这个我有,我要的是java语言写的。呵呵,怎么好象我表达的不清楚呢。呵呵。
      

  9.   

    有代码也给我一份:[email protected]
      

  10.   

    有的话也给我发一份哦[email protected]
      

  11.   

    呵呵,看来这个问题是把大家可难住了,哎看来java版的高手真的没有多少了。哎,看来只有自己写了。
      

  12.   

    中华人民共和国上CSND的难道必须会JAVA吗?高手都在忙呢?不过你写好我介意给我发一份,谢谢[email protected]
      

  13.   

    既然有javascript的算法, 改成 java 应该不需要费多少功夫啦, 还不满足?
      

  14.   

    象这样的问题应该有共享的代码才是啊,或者是javabean之类的啊,怎么还会自己去写,难道不是浪费吗,咱们的软件就这点都做不到吗?
      

  15.   

    source code can be found everywhere. I've seen versions by C#, vb, delphi, vc and javascript. 
    I cannot believe you only understand java.
      

  16.   

    to wobelisk() :
       Maybe his project developed by java , is application,
    and you want  he convert this project to other language because of this
    issue, I think you are ill
      

  17.   

    我发先了任何版的,就是没有java 版的,自己写很累,我现在在该vb的,发现问题多多。哎。
      

  18.   

    went009 said:
    "convert this project to other language because of this issue."你的理解力是不是有些问题?
      

  19.   

    chinajust(一天) 的方法还是很有意思的!.
      

  20.   

    谁给我一个纯java的,我在给150分。谢谢
      

  21.   

    顺便问个问题:
    int a=0x1122; //这样是可以的
    String b ="0x1122";
    如何把b 转换成int或者说,就是把b符给a。
    用Integer.paresInt是不可以的。
      

  22.   

    System.out.println(Integer.decode("0x1122"))
      

  23.   

    要请吃饭了:)<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %>
    <%@ page import="java.util.*,java.io.*,java.text.*"%>
    <%
    //世纪万年历
    ////农历每月的天数
    int everymonth[][]={
    {8,0,0,0,0,0,0,0,0,0,0,0,29,30,7,1},
    {0,29,30,29,29,30,29,30,29,30,30,30,29,0,8,2},
    {0,30,29,30,29,29,30,29,30,29,30,30,30,0,9,3},
    {5,29,30,29,30,29,29,30,29,29,30,30,29,30,10,4},
    {0,30,30,29,30,29,29,30,29,29,30,30,29,0,1,5},
    {0,30,30,29,30,30,29,29,30,29,30,29,30,0,2,6},
    {4,29,30,30,29,30,29,30,29,30,29,30,29,30,3,7},
    {0,29,30,29,30,29,30,30,29,30,29,30,29,0,4,8},
    {0,30,29,29,30,30,29,30,29,30,30,29,30,0,5,9},
    {2,29,30,29,29,30,29,30,29,30,30,30,29,30,6,10},
    {0,29,30,29,29,30,29,30,29,30,30,30,29,0,7,11},
    {6,30,29,30,29,29,30,29,29,30,30,29,30,30,8,12},
    {0,30,29,30,29,29,30,29,29,30,30,29,30,0,9,1},
    {0,30,30,29,30,29,29,30,29,29,30,29,30,0,10,2},
    {5,30,30,29,30,29,30,29,30,29,30,29,29,30,1,3},
    {0,30,29,30,30,29,30,29,30,29,30,29,30,0,2,4},
    {0,29,30,29,30,29,30,30,29,30,29,30,29,0,3,5},
    {2,30,29,29,30,29,30,30,29,30,30,29,30,29,4,6},
    {0,30,29,29,30,29,30,29,30,30,29,30,30,0,5,7},
    {7,29,30,29,29,30,29,29,30,30,29,30,30,30,6,8},
    {0,29,30,29,29,30,29,29,30,30,29,30,30,0,7,9},
    {0,30,29,30,29,29,30,29,29,30,29,30,30,0,8,10},
    {5,30,29,30,30,29,29,30,29,29,30,29,30,30,9,11},
    {0,29,30,30,29,30,29,30,29,29,30,29,30,0,10,12},
    {0,29,30,30,29,30,30,29,30,29,30,29,29,0,1,1},
    {4,30,29,30,29,30,30,29,30,30,29,30,29,30,2,2},
    {0,29,29,30,29,30,29,30,30,29,30,30,29,0,3,3},
    {0,30,29,29,30,29,30,29,30,29,30,30,30,0,4,4},
    {2,29,30,29,29,30,29,29,30,29,30,30,30,30,5,5},
    {0,29,30,29,29,30,29,29,30,29,30,30,30,0,6,6},
    {6,29,30,30,29,29,30,29,29,30,29,30,30,29,7,7},
    {0,30,30,29,30,29,30,29,29,30,29,30,29,0,8,8},
    {0,30,30,30,29,30,29,30,29,29,30,29,30,0,9,9},
    {5,29,30,30,29,30,30,29,30,29,30,29,29,30,10,10},
    {0,29,30,29,30,30,29,30,29,30,30,29,30,0,1,11},
    {0,29,29,30,29,30,29,30,30,29,30,30,29,0,2,12},
    {3,30,29,29,30,29,29,30,30,29,30,30,30,29,3,1},
    {0,30,29,29,30,29,29,30,29,30,30,30,29,0,4,2},
    {7,30,30,29,29,30,29,29,30,29,30,30,29,30,5,3},
    {0,30,30,29,29,30,29,29,30,29,30,29,30,0,6,4},
    {0,30,30,29,30,29,30,29,29,30,29,30,29,0,7,5},
    {6,30,30,29,30,30,29,30,29,29,30,29,30,29,8,6},
    {0,30,29,30,30,29,30,29,30,29,30,29,30,0,9,7},
    {0,29,30,29,30,29,30,30,29,30,29,30,29,0,10,8},
    {4,30,29,30,29,30,29,30,29,30,30,29,30,30,1,9},
    {0,29,29,30,29,29,30,29,30,30,30,29,30,0,2,10},
    {0,30,29,29,30,29,29,30,29,30,30,29,30,0,3,11},
    {2,30,30,29,29,30,29,29,30,29,30,29,30,30,4,12},
    {0,30,29,30,29,30,29,29,30,29,30,29,30,0,5,1},
    {7,30,29,30,30,29,30,29,29,30,29,30,29,30,6,2},
    {0,29,30,30,29,30,30,29,29,30,29,30,29,0,7,3},
    {0,30,29,30,30,29,30,29,30,29,30,29,30,0,8,4},
    {5,29,30,29,30,29,30,29,30,30,29,30,29,30,9,5},
    {0,29,30,29,29,30,30,29,30,30,29,30,29,0,10,6},
    {0,30,29,30,29,29,30,29,30,30,29,30,30,0,1,7},
    {3,29,30,29,30,29,29,30,29,30,29,30,30,30,2,8},
    {0,29,30,29,30,29,29,30,29,30,29,30,30,0,3,9},
    {8,30,29,30,29,30,29,29,30,29,30,29,30,29,4,10},
    {0,30,30,30,29,30,29,29,30,29,30,29,30,0,5,11},
    {0,29,30,30,29,30,29,30,29,30,29,30,29,0,6,12},
    {6,30,29,30,29,30,30,29,30,29,30,29,30,29,7,1},
    {0,30,29,30,29,30,29,30,30,29,30,29,30,0,8,2},
    {0,29,30,29,29,30,29,30,30,29,30,30,29,0,9,3},
    {4,30,29,30,29,29,30,29,30,29,30,30,30,29,10,4},
    {0,30,29,30,29,29,30,29,30,29,30,30,30,0,1,5},
    {0,29,30,29,30,29,29,30,29,29,30,30,29,0,2,6},
    {3,30,30,30,29,30,29,29,30,29,29,30,30,29,3,7},
    {0,30,30,29,30,30,29,29,30,29,30,29,30,0,4,8},
    {7,29,30,29,30,30,29,30,29,30,29,30,29,30,5,9},
    {0,29,30,29,30,29,30,30,29,30,29,30,29,0,6,10},
    {0,30,29,29,30,29,30,30,29,30,30,29,30,0,7,11},
    {5,29,30,29,29,30,29,30,29,30,30,30,29,30,8,12},
    {0,29,30,29,29,30,29,30,29,30,30,29,30,0,9,1},
    {0,30,29,30,29,29,30,29,29,30,30,29,30,0,10,2},
    {4,30,30,29,30,29,29,30,29,29,30,30,29,30,1,3},
    {0,30,30,29,30,29,29,30,29,29,30,29,30,0,2,4},
    {8,30,30,29,30,29,30,29,30,29,29,30,29,30,3,5},
    {0,30,29,30,30,29,30,29,30,29,30,29,29,0,4,6},
    {0,30,29,30,30,29,30,30,29,30,29,30,29,0,5,7},
    {6,30,29,29,30,29,30,30,29,30,30,29,30,29,6,8},
    {0,30,29,29,30,29,30,29,30,30,29,30,30,0,7,9},
    {0,29,30,29,29,30,29,29,30,30,29,30,30,0,8,10},
    {4,30,29,30,29,29,30,29,29,30,29,30,30,30,9,11},
    {0,30,29,30,29,29,30,29,29,30,29,30,30,0,10,12},
    {10,30,29,30,30,29,29,30,29,29,30,29,30,30,1,1},
    {0,29,30,30,29,30,29,30,29,29,30,29,30,0,2,2},
    {0,29,30,30,29,30,30,29,30,29,30,29,29,0,3,3},
    {6,30,29,30,29,30,30,29,30,30,29,30,29,29,4,4},
    {0,30,29,30,29,30,29,30,30,29,30,30,29,0,5,5},
    {0,30,29,29,30,29,29,30,30,29,30,30,30,0,6,6},
    {5,29,30,29,29,30,29,29,30,29,30,30,30,30,7,7},
    {0,29,30,29,29,30,29,29,30,29,30,30,30,0,8,8},
    {0,29,30,30,29,29,30,29,29,30,29,30,30,0,9,9},
    {3,29,30,30,29,30,29,30,29,29,30,29,30,29,10,10},
    {0,30,30,30,29,30,29,30,29,29,30,29,30,0,1,11},
    {8,29,30,30,29,30,29,30,30,29,29,30,29,30,2,12},
    {0,29,30,29,30,30,29,30,29,30,30,29,29,0,3,1},
    {0,30,29,30,29,30,29,30,30,29,30,30,29,0,4,2},
    {5,30,29,29,30,29,29,30,30,29,30,30,29,30,5,3},
    {0,30,29,29,30,29,29,30,29,30,30,30,29,0,6,4},
    {0,30,30,29,29,30,29,29,30,29,30,30,29,0,7,5},
    {4,30,30,29,30,29,30,29,29,30,29,30,29,30,8,6},
    {0,30,30,29,30,29,30,29,29,30,29,30,29,0,9,7},
    {0,30,30,29,30,30,29,30,29,29,30,29,30,0,10,8},
    {2,29,30,29,30,30,29,30,29,30,29,30,29,30,1,9},
    {0,29,30,29,30,29,30,30,29,30,29,30,29,0,2,10},
    {7,30,29,30,29,30,29,30,29,30,30,29,30,30,3,11},
    {0,29,29,30,29,29,30,29,30,30,30,29,30,0,4,12},
    {0,30,29,29,30,29,29,30,29,30,30,29,30,0,5,1},
    {5,30,30,29,29,30,29,29,30,29,30,29,30,30,6,2},
    {0,30,29,30,29,30,29,29,30,29,30,29,30,0,7,3},
    {0,30,29,30,30,29,30,29,29,30,29,30,29,0,8,4},
    {4,30,29,30,30,29,30,29,30,29,30,29,30,29,9,5},
    {0,30,29,30,29,30,30,29,30,29,30,29,30,0,10,6},
    {9,29,30,29,30,29,30,29,30,30,29,30,29,30,1,7},
    {0,29,30,29,29,30,29,30,30,30,29,30,29,0,2,8},
    {0,30,29,30,29,29,30,29,30,30,29,30,30,0,3,9},
    {6,29,30,29,30,29,29,30,29,30,29,30,30,30,4,10},
    {0,29,30,29,30,29,29,30,29,30,29,30,30,0,5,11},
    {0,30,29,30,29,30,29,29,30,29,29,30,30,0,6,12},
    {4,29,30,30,30,29,30,29,29,30,29,30,29,30,7,1}
    };
    ////////////////////////////////////////////////////////////
    //农历天干
    String[] mten={"null","甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};
    //农历地支
    String[] mtwelve={"null","子(鼠)","丑(牛)","寅(虎)","卯(兔)","辰(龙)",
                   "巳(蛇)","午(马)","未(羊)","申(猴)","酉(鸡)","戌(狗)","亥(猪)"};
    //农历月份
    String[] mmonth={"闰","正","二","三","四","五","六",
                  "七","八","九","十","十一","十二","月"};
    //农历日
    String[] mday={"null","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十",
                "十一","十二","十三","十四","十五","十六","十七","十八","十九","二十",
                "廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十"};