万年日历

API接口:

https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=2019年04月&resource_id=6018&format=json

 

 

# coding=gbk
import requests
from bs4 import BeautifulSoup
import xlwt
# 获取一年数据,以字典返回
def getYear():
    yearDic = {}
    week = 2 # 初始星期,2019年1月1日为星期二
    year = 2019 # 年份 想要哪年的就改成那年的 记得修改上面的初始星期
    urlList = []
    uUrl = 'https://wannianrili.51240.com/ajax/?q={}-{}&v=18121803'
    # 构造每个月的接口链接
    for y in range(1,13):
        if y<10:
            rUrl = uUrl.format(year,'0'+str(y))
            urlList.append(rUrl)
        else:
            rUrl = uUrl.format(year,y)
            urlList.append(rUrl)
    headers = {
        'User-Agent': 'Mozilla / 5.0(Windows NT 10.0; Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 68.0.3440.106Safari / 537.36',
    }
    for i in range(0,len(urlList)):
        monthDic = {}
        html = requests.get(urlList[i], headers=headers)
        soup = BeautifulSoup(html.content, 'lxml')
        riqiList = soup.find_all(class_='wnrl_riqi')
        for riqi in riqiList:
            dayList = []
            g = riqi.find_all(class_='wnrl_td_gl')
            n = riqi.find_all(class_='wnrl_td_bzl')
            gStr = g[0].get_text()
            nStr = n[0].get_text()
            # 找到该元素视为法定节假日
            if riqi.find_all(class_='wnrl_riqi_xiu'):
                nStr+='(休)'
            dayList.append(week)
            # 到星期日后重置为0
            if week == 7:
                week = 0
            week+=1
            dayList.append(gStr)
            dayList.append(nStr)
            monthDic[gStr] = dayList
        yearDic[i+1] = monthDic
    return yearDic,year
# 初始每个月的星期标题单元格坐标,页面3*4网格方式展示
def coordinates():
    yearCoorDic = {}
    x = 2 # 初始横坐标
    y = 0 # 初始纵坐标
    interval = 2 # 月份之间的纵坐标间距
    for i in range(1,13):
        monthList = []
        # 月份为1,5,9 时num重新初始为0
        if i == 1 or i == 5 or i == 9:
            num = y
        if i < 5:
            # 循环7次,为星期一到星期天
            for k in range(7):
                tList = []
                # cross =  x # 横
                # 每次纵坐标+1
                column =  k + num # 纵
                tList.append(x)
                tList.append(column)
                # 记住最后一次(星期天)纵坐标+月份间隔,为下个月(星期一)的纵坐标值
                if k == 6:
                    num = column+interval
                monthList.append(tList)
        if i>4 and i<9:
            for k in range(7):
                tList = []
                # 横坐标方向的单元格数,计算得出日+农历最大占用12行。这里给14行算上横坐标间距
                cross =  x + 14 # 横
                column =  k + num # 纵
                tList.append(cross)
                tList.append(column)
                if k == 6:
                    num = column+interval
                monthList.append(tList)
        if i>8 and i<13:
            for k in range(7):
                tList = []
                cross =  x + 14*2 # 横
                column =  k + num # 纵
                tList.append(cross)
                tList.append(column)
                if k == 6:
                    num = column+interval
                monthList.append(tList)
        yearCoorDic[i] = monthList
    return yearCoorDic
def template():
    book = xlwt.Workbook()  # 新建一个excel对象
    sheet = book.add_sheet('2019年日历表')  # 添加一个sheet页
    month_style = xlwt.easyxf('font: height 280;')  # 定义月份标题单元格高度
    week_style = xlwt.easyxf('font: height 340;')  # 定义星期单元格高度
    Content_style = xlwt.easyxf('font: height 280;') # 定义日期和农历单元格高度
    styleRed = xlwt.XFStyle()  # 创建一个样式对象,初始化样式  适用于周末单元格
    styleRed1 = xlwt.XFStyle()  # 创建一个样式对象,初始化样式  适用于周末单元格且节日名过长时
    styleBlack = xlwt.XFStyle()  # 创建一个样式对象,初始化样式 适用于工作日单元格
    styleBlack_ = xlwt.XFStyle()  # 创建一个样式对象,初始化样式 适用于农历单元格
    styleBlack1_ = xlwt.XFStyle() # 创建一个样式对象,初始化样式 适用于农历单元格且节日名过长时
    titleStyle = xlwt.XFStyle()  # 创建一个样式对象,初始化样式  适用于月份标题单元格
    styleContent = xlwt.XFStyle() # 创建一个样式对象,初始化样式  适用于日期和农历单元格
    # 设置单元格样式  通用
    al = xlwt.Alignment()
    al.horz = 0x02  # 设置水平居中
    al.vert = 0x01  # 设置垂直居中
    # 设置单元格样式  适用于styleRed1 styleBlack1_
    al1 = xlwt.Alignment()
    al1.vert = 0x01  # 设置垂直居中
    # 设置单元格样式  适用于周末和法定节假日
    fnt = xlwt.Font()
    fnt.bold = True  # 字体加粗
    fnt.name = u'微软雅黑'  # 设置其字体为微软雅黑
    fnt.colour_index = 2  # 字体红色
    # 设置单元格样式  适用于工作日和星期
    fnt1 = xlwt.Font()
    fnt1.bold = True  # 字体加粗
    fnt1.name = u'微软雅黑'  # 设置其字体为微软雅黑
    fnt1.colour_index = 0  # 字体黑色
    # 设置单元格样式  适用于农历
    fnt1_ = xlwt.Font()
    fnt1_.bold = True  # 字体加粗
    fnt1_.name = u'微软雅黑'  # 设置其字体为微软雅黑
    fnt1_.colour_index = 23  # 字体灰色
    # 设置单元格样式  适用于月份标题显示
    fnt2 = xlwt.Font()
    fnt2.bold = True  # 字体加粗
    fnt2.name = u'微软雅黑'  # 设置其字体为微软雅黑
    fnt2.colour_index = 1  # 字体黑色
    pattern = xlwt.Pattern()  # Create the pattern
    pattern.pattern = xlwt.Pattern.SOLID_PATTERN  # May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12
    pattern.pattern_fore_colour = 8  # May be: 8 through 63. 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow , almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray, the list goes on..
    # 应用单元格样式
    styleRed.alignment = al
    styleRed.font = fnt
    styleRed1.alignment = al1
    styleRed1.font = fnt
    # 应用单元格样式
    styleBlack.alignment = al
    styleBlack.font = fnt1
    # 应用单元格样式
    styleBlack_.alignment = al
    styleBlack_.font = fnt1_
    styleBlack1_.alignment = al1
    styleBlack1_.font = fnt1_
    # 应用单元格样式
    titleStyle.alignment = al
    titleStyle.font = fnt2
    titleStyle.pattern = pattern
    styleContent.alignment = al
    # 获取每个月星期标题坐标初始值
    yearCoorDic = coordinates()
    print('正在获取日历数据...')
    # 获取一年的数据
    yearDic,year = getYear()
    titList = list(yearCoorDic.keys())
    print('%s年数据获取成功,正在写入模板...'%year)
    for i in range(len(titList)):  # 12个月份
        # 获取第一个月份的星期初始坐标
        titcoorList = yearCoorDic[titList[i]]
        # 设置应用月份标题的高度
        first_row = sheet.row(titcoorList[0][0]-1)
        first_row.set_style(month_style)
        sheet.write_merge(titcoorList[0][0]-1, titcoorList[0][0]-1, titcoorList[0][1], titcoorList[-1][1], '{}月'.format(i+1), titleStyle)  # 合并单元格并写入月份
        # 根据坐标写入星期标题
        for j in range(0,len(titcoorList)):
            # 设置应用星期标题宽度
            first_col = sheet.col(titcoorList[j][1])
            first_col.width = 95 * 25
            # 设置应用星期标题的高度
            first_row = sheet.row(titcoorList[j][0])
            first_row.set_style(week_style)
            if j+1 == 1:
                title = '星期一'
            elif j+1 == 2:
                title = '星期二'
            elif j+1 == 3:
                title = '星期三'
            elif j+1 == 4:
                title = '星期四'
            elif j+1 == 5:
                title = '星期五'
            elif j+1 == 6:
                title = '星期六'
            else:
                title = '星期日'
            sheet.write(titcoorList[j][0], titcoorList[j][1], title , styleBlack if j+1<6 else styleRed)
        # 初始每个星期横坐标初始值
        oneNum,twoNum,threeNum,fourNum,fiveNum,sixNum,sevenNum = 1,1,1,1,1,1,1 # 总觉得有简化的方法 这样写感觉好傻-.-
        # 获取第一个月份数据的键值列表
        daykeyList = list(yearDic[titList[i]].keys())
        for k in range(len(daykeyList)): # 每个月的日期
            dayList = yearDic[titList[i]][daykeyList[k]] # 获取每日的列表值['2','01','元旦']  第一个值为星期几,第二个为日期,第三个为农历或节假日
            # 判断每个月第一天为星期几,若为星期二,则把星期一的横坐标初始值初始为3,即星期一为空,以此类推
            if k == 0:
                if dayList[0]==2:
                    oneNum = 3
                if dayList[0]==3:
                    oneNum,twoNum = 3,3
                if dayList[0]==4:
                    oneNum,twoNum,threeNum = 3,3,3
                if dayList[0]==5:
                    oneNum,twoNum,threeNum,fourNum= 3,3,3,3
                if dayList[0]==6:
                    oneNum,twoNum,threeNum,fourNum,fiveNum= 3,3,3,3,3
                if dayList[0]==7:
                    oneNum,twoNum,threeNum,fourNum,fiveNum,sixNum= 3,3,3,3,3,3
            # 判断日期是星期几,执行对应语句
            if 1 == dayList[0]:
                # 设置应用单元格的高度
                first_row = sheet.row(titcoorList[0][0] + oneNum)
                first_row.set_style(Content_style)
                # 写入日期,日期横坐标的值为初始星期标题坐标值+oneNum初始值
                sheet.write(titcoorList[0][0] + oneNum, titcoorList[0][1], dayList[1], styleRed if '休' in dayList[2] else  styleBlack)
                # 初始值+1 为下个农历节假日的初始值
                oneNum+=1
                # 设置应用单元格的高度
                first_row = sheet.row(titcoorList[0][0] + oneNum)
                first_row.set_style(Content_style)
                # 写入农历或节假日 初始星期标题+oneNum初始值
                sheet.write(titcoorList[0][0] + oneNum, titcoorList[0][1], dayList[2], styleRed if '休' in dayList[2] else  styleBlack1_ if len(dayList[2])>4 else styleBlack_)
                oneNum+=1
            if 2 == dayList[0]:
                # 设置应用单元格的高度
                first_row = sheet.row(titcoorList[1][0] + twoNum)
                first_row.set_style(Content_style)
                sheet.write(titcoorList[1][0] + twoNum, titcoorList[1][1], dayList[1], styleRed if '休' in dayList[2] else  styleBlack)
                twoNum+=1
                # 设置应用单元格的高度
                first_row = sheet.row(titcoorList[1][0] + twoNum)
                first_row.set_style(Content_style)
                sheet.write(titcoorList[1][0] + twoNum, titcoorList[1][1], dayList[2], styleRed if '休' in dayList[2] else  styleBlack1_ if len(dayList[2])>4 else styleBlack_)
                twoNum+=1
            if 3 == dayList[0]:
                # 设置应用单元格的高度
                first_row = sheet.row(titcoorList[2][0] + threeNum)
                first_row.set_style(Content_style)
                sheet.write(titcoorList[2][0] + threeNum, titcoorList[2][1], dayList[1], styleRed if '休' in dayList[2] else  styleBlack)
                threeNum+=1
                # 设置应用单元格的高度
                first_row = sheet.row(titcoorList[2][0] + threeNum)
                first_row.set_style(Content_style)
                sheet.write(titcoorList[2][0] + threeNum, titcoorList[2][1], dayList[2], styleRed if '休' in dayList[2] else  styleBlack1_ if len(dayList[2])>4 else styleBlack_)
                threeNum+=1
            if 4 == dayList[0]:
                # 设置应用单元格的高度
                first_row = sheet.row(titcoorList[3][0] + fourNum)
                first_row.set_style(Content_style)
                sheet.write(titcoorList[3][0] + fourNum, titcoorList[3][1], dayList[1], styleRed if '休' in dayList[2] else  styleBlack)
                fourNum+=1
                # 设置应用单元格的高度
                first_row = sheet.row(titcoorList[3][0] + fourNum)
                first_row.set_style(Content_style)
                sheet.write(titcoorList[3][0] + fourNum, titcoorList[3][1], dayList[2], styleRed if '休' in dayList[2] else  styleBlack1_ if len(dayList[2])>4 else styleBlack_)
                fourNum+=1
            if 5 == dayList[0]:
                # 设置应用单元格的高度
                first_row = sheet.row(titcoorList[4][0] + fiveNum)
                first_row.set_style(Content_style)
                sheet.write(titcoorList[4][0] + fiveNum, titcoorList[4][1], dayList[1], styleRed if '休' in dayList[2] else  styleBlack)
                fiveNum+=1
                # 设置应用单元格的高度
                first_row = sheet.row(titcoorList[4][0] + fiveNum)
                first_row.set_style(Content_style)
                sheet.write(titcoorList[4][0] + fiveNum, titcoorList[4][1], dayList[2], styleRed if '休' in dayList[2] else  styleBlack1_ if len(dayList[2])>4 else styleBlack_)
                fiveNum+=1
            if 6 == dayList[0]:
                # 设置应用单元格的高度
                first_row = sheet.row(titcoorList[5][0] + sixNum)
                first_row.set_style(Content_style)
                sheet.write(titcoorList[5][0] + sixNum, titcoorList[5][1], dayList[1], styleRed)
                sixNum+=1
                # 设置应用单元格的高度
                first_row = sheet.row(titcoorList[5][0] + sixNum)
                first_row.set_style(Content_style)
                sheet.write(titcoorList[5][0] + sixNum, titcoorList[5][1], dayList[2], styleRed if '休' in dayList[2] else  styleBlack1_ if len(dayList[2])>4 else styleBlack_)
                sixNum+=1
            if 7 == dayList[0]:
                # 设置应用单元格的高度
                first_row = sheet.row(titcoorList[6][0] + sevenNum)
                first_row.set_style(Content_style)
                sheet.write(titcoorList[6][0] + sevenNum, titcoorList[6][1], dayList[1], styleRed)
                sevenNum+=1
                # 设置应用单元格的高度
                first_row = sheet.row(titcoorList[6][0] + sevenNum)
                first_row.set_style(Content_style)
                sheet.write(titcoorList[6][0] + sevenNum, titcoorList[6][1], dayList[2], styleRed if '休' in dayList[2] else  styleBlack1_ if len(dayList[2])>4 else styleBlack_)
                sevenNum+=1
    book.save('%s年日历表.xls'%year)
    print('保存成功,程序执行完毕...')
template()

\'日期数据定义方法如下 \'前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日。FunGetDate函数使用方式如下tYear为要输入的年,tMonth为月,tDay为 \'日期,YLyear是返回值,返加农历的年份,如甲子年,YLShuXing返回的是属象,如鼠。IsGetGongLi是设置是不是通过农历取公历值,如果是, \'前三个返回相应的公历日期,而且返回值是一个公历日期。 \'by lichangfeng mytoday2004@163.com 2007.4.5 5:30 Function FunGetDate(tYear As Integer, tMonth As Integer, tDay As Integer, YLyear As String, YLShuXing As String, Optional IsGetGongLi As Boolean) As String On Error Resume Next Dim dateList(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 2009 dateList(1900) = \"010010110110180131\" dateList(1901) = \"010010101110000219\" dateList(1902) = \"101001010111000208\" dateList(1903) = \"010100100110150129\" dateList(1904) = \"110100100110000216\" dateList(1905) = \"110110010101000204\" dateList(1906) = \"011010101010140125\" dateList(1907) = \"010101101010000213\" dateList(1908) = \"100110101101000202\" dateList(1909) = \"010010101110120122\" dateList(1910) = \"010010101110000210\" dateList(1911) = \"101001001101160130\" dateList(1912) = \"101001001101000218\" dateList(1913) = \"110100100101000206\" dateList(1914) = \"110101010100150126\" dateList(1915) = \"101101010101000214\" dateList(1916) = \"010101101010000204\" dateList(1917) = \"100101101101020123\" dateList(1918) = \"100101011011000211\" dateList(1919) = \"010010011011170201\" dateList(1920) = \"010010011011000220\" dateList(1921) = \"101001001011000208\" dateList(1922) = \"101100100101150128\" dateList(1923) = \"011010100101000216\" dateList(1924) = \"011011010100000205\" dateList(1925) = \"101011011010140124\" dateList(1926) = \"001010110110000213\" dateList(1927) = \"100101010111000202\" dateList(1928) = \"010010010111120123\" dateList(1929) = \"010010010111000210\" dateList(1930) = \"011001001011060130\" dateList(1931) = \"110101001010000217\" dateList(1932) = \"111010100101000206\" dateList(1933) = \"011011010100150126\" dateList(1934) = \"010110101101000214\" dateList(1935) = \"001010110110000204\" dateList(1936) = \"100100110111030124\" dateList(1937) = \"100100101110000211\" dateList(1938) = \"110010010110170131\" dateList(1939) = \"110010010101000219\" dateList(1940) = \"110101001010000208\" dateList(1941) = \"110110100101060127\" dateList(1942) = \"101101010101000215\" dateList(1943) = \"010101101010000205\" dateList(1944) = \"101010101101140125\" dateList(1945) = \"001001011101000213\" dateList(1946) = \"100100101101000202\" dateList(1947) = \"110010010101120122\" dateList(1948) = \"101010010101000210\" dateList(1949) = \"101101001010170129\" dateList(1950) = \"011011001010000217\" dateList(1951) = \"101101010101000206\" dateList(1952) = \"010101011010150127\" dateList(1953) = \"010011011010000214\" dateList(1954) = \"101001011011000203\" dateList(1955) = \"010100101011130124\" dateList(1956) = \"010100101011000212\" dateList(1957) = \"101010010101080131\" dateList(1958) = \"111010010101000218\" dateList(1959) = \"011010101010000208\" dateList(1960) = \"101011010101060128\" dateList(1961) = \"101010110101000215\" dateList(1962) = \"010010110110000205\" dateList(1963) = \"101001010111040125\" dateList(1964) = \"101001010111000213\" dateList(1965) = \"010100100110000202\" dateList(1966) = \"111010010011030121\" dateList(1967) = \"110110010101000209\" dateList(1968) = \"010110101010170130\" dateList(1969) = \"010101101010000217\" dateList(1970) = \"100101101101000206\" dateList(1971) = \"010010101110150127\" dateList(1972) = \"010010101101000215\" dateList(1973) = \"101001001101000203\" dateList(1974) = \"110100100110140123\" dateList(1975) = \"110100100101000211\" dateList(1976) = \"110101010010180131\" dateList(1977) = \"101101010100000218\" dateList(1978) = \"101101101010000207\" dateList(1979) = \"100101101101060128\" dateList(1980) = \"100101011011000216\" dateList(1981) = \"010010011011000205\" dateList(1982) = \"101001001011140125\" dateList(1983) = \"101001001011000213\" dateList(1984) = \"1011001001011A0202\" dateList(1985) = \"011010100101000220\" dateList(1986) = \"011011010100000209\" dateList(1987) = \"101011011010060129\" dateList(1988) = \"101010110110000217\" dateList(1989) = \"100100110111000206\" dateList(1990) = \"010010010111150127\" dateList(1991) = \"010010010111000215\" dateList(1992) = \"011001001011000204\" dateList(1993) = \"011010100101030123\" dateList(1994) = \"111010100101000210\" dateList(1995) = \"011010110010180131\" dateList(1996) = \"010110101100000219\" dateList(1997) = \"101010110110000207\" dateList(1998) = \"100100110110150128\" dateList(1999) = \"100100101110000216\" dateList(2000) = \"110010010110000205\" dateList(2001) = \"110101001010140124\" dateList(2002) = \"110101001010000212\" dateList(2003) = \"110110100101000201\" dateList(2004) = \"010110101010120122\" dateList(2005) = \"010101101010000209\" dateList(2006) = \"101010101101170129\" dateList(2007) = \"001001011101000218\" dateList(2008) = \"100100101101000207\" dateList(2009) = \"110010010101150126\" dateList(2010) = \"101010010101000214\" dateList(2011) = \"101101001010000214\" AddYear = tYear RunYue = False If IsGetGongLi Then AddMonth = Val(Mid(dateList(AddYear), 15, 2)) AddDay = Val(Mid(dateList(AddYear), 17, 2)) conDate = DateSerial(AddYear, AddMonth, AddDay) AddDay = tDay For i = 1 To tMonth - 1 AddDay = AddDay + 29 + Val(Mid(dateList(tYear), i, 1)) Next i \'MsgBox DateDiff(\"d\", conDate, Date) setDate = DateAdd(\"d\", AddDay - 1, conDate) FunGetDate = setDate tYear = Year(setDate) tMonth = Month(setDate) tDay = Day(setDate) Exit Function End If CHUSHIHUA: AddMonth = Val(Mid(dateList(AddYear), 15, 2)) AddDay = Val(Mid(dateList(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(dateList(AddYear), AddMonth, 1) Or (RunYue And AddDay = 30 + Mid(dateList(AddYear), 13, 1)) Then If RunYue = False And AddMonth = Val(\"&H\" & Mid(dateList(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$ FunGetDate = mm$ + dd$ End Function \'添加三个combobox控件 \'四个标签\"年\"\"月\"\"日\",其中一个caption为空name 为lb作为显示日期的容器 Private Sub Combo1_Click() Dim ty As Integer, tm As Integer, td As Integer, yl As String, sx As String, yOn As Boolean yOn = False If Check1.Value = 1 Then yOn = True End If lb.Caption = FunGetDate(Combo1.Text, Combo2.Text, Combo3.Text, yl, sx, yOn) & \" \" & yl & \" \" & sx End Sub Private Sub Combo2_Click() com11 = Combo3.Text Combo3.Clear Select Case Combo2.Text Case 1 For i = 1 To 31 Combo3.AddItem i, i - 1 Next Case 2 If Combo1.Text Mod 4 <> 0 Then For i = 1 To 28 Combo3.AddItem i, i - 1 Next Else For i = 1 To 29 Combo3.AddItem i, i - 1 Next End If Case 3 For i = 1 To 31 Combo3.AddItem i, i - 1 Next Case 4 For i = 1 To 30 Combo3.AddItem i, i - 1 Next Case 5 For i = 1 To 31 Combo3.AddItem i, i - 1 Next Case 6 For i = 1 To 30 Combo3.AddItem i, i - 1 Next Case 7 For i = 1 To 31 Combo3.AddItem i, i - 1 Next Case 8 For i = 1 To 31 Combo3.AddItem i, i - 1 Next Case 9 For i = 1 To 30 Combo3.AddItem i, i - 1 Next Case 10 For i = 1 To 31 Combo3.AddItem i, i - 1 Next Case 11 For i = 1 To 30 Combo3.AddItem i, i - 1 Next Case 12 For i = 1 To 31 Combo3.AddItem i, i - 1 Next End Select Combo3.Text = com11 Dim ty As Integer, tm As Integer, td As Integer, yl As String, sx As String, yOn As Boolean yOn = False If Check1.Value = 1 Then yOn = True End If lb.Caption = FunGetDate(CInt(Combo1.Text), CInt(Combo2.Text), CInt(com11), yl, sx, yOn) & \" \" & yl & \" \" & sx End Sub Private Sub Combo3_Click() Dim ty As Integer, tm As Integer, td As Integer, yl As String, sx As String, yOn As Boolean yOn = False If Check1.Value = 1 Then yOn = True End If lb.Caption = FunGetDate(CInt(Combo1.Text), CInt(Combo2.Text), CInt(Combo3.Text), yl, sx, yOn) & \" \" & yl & \" \" & sx End Sub Private Sub Form_Load() For i = 1900 To 2011 Combo1.AddItem i, i - 1900 Next For i = 1 To 12 Combo2.AddItem i, i - 1 Next Select Case Combo2.Text Case 1 For i = 1 To 31 Combo3.AddItem i, i - 1 Next Case 2 If Combo1.Text Mod 4 <> 0 Then For i = 1 To 28 Combo3.AddItem i, i - 1 Next Else For i = 1 To 29 Combo3.AddItem i, i - 1 Next End If Case 3 For i = 1 To 31 Combo3.AddItem i, i - 1 Next Case 4 For i = 1 To 30 Combo3.AddItem i, i - 1 Next Case 5 For i = 1 To 31 Combo3.AddItem i, i - 1 Next Case 6 For i = 1 To 30 Combo3.AddItem i, i - 1 Next Case 7 For i = 1 To 31 Combo3.AddItem i, i - 1 Next Case 8 For i = 1 To 31 Combo3.AddItem i, i - 1 Next Case 9 For i = 1 To 30 Combo3.AddItem i, i - 1 Next Case 10 For i = 1 To 31 Combo3.AddItem i, i - 1 Next Case 11 For i = 1 To 30 Combo3.AddItem i, i - 1 Next Case 12 For i = 1 To 31 Combo3.AddItem i, i - 1 Next End Select Combo1.Text = Year(Now) Combo2.Text = Month(Now) Combo3.Text = Day(Now) End Sub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值