vb获取当天的公历节日并显示倒计时

 时间:2024-10-15 02:49:29

1、辅助函数:获取某月第几个星期几:'判断某月的第几个星期几,实例:getweek(2016,9,2,0),表示2016年9月的第二个星期日的日期是多少Function getweek(year As Integer, yue As Integer, num As Integer, week As Integer) As StringDim day As String '月份的天数For I = 1 To 7If Weekday(year & "-" & yue & "-" & I) - 1 = week Thenday = I '第1个星期几的日期End IfNext IFor I = 1 To num - 1day = day + 7 '第num个星期几的日期Next I'修正,防止出现如32号的错误信息Select Case yueCase 1, 3, 5, 7, 8, 10, 12 '31天的月数If day > 31 Thengetweek = ""Elsegetweek = Format(year & "-" & yue & "-" & day, "yyyy-mm-dd")End IfCase 4, 6, 9, 11 '30天的月数If day > 30 Thengetweek = ""Elsegetweek = Format(year & "-" & yue & "-" & day, "yyyy-mm-dd")End IfCase 2 '平闰月Dim temp As Integertemp = 28If year Mod 100 = 0 And year Mod 400 = 0 Thentemp = 29End IfIf year Mod 100 <> 0 And year Mod 4 = 0 Thentemp = 29End IfIf day > temp Thengetweek = ""Elsegetweek = Format(year & "-" & yue & "-" & day, "yyyy-mm-dd")End IfEnd SelectEnd Function

2、主要函数:'应用:xqjr(2016,10,1,"1")Function xqjr(myyear As Integer, month As Integer, day As Integer, myms As String) As String'myms:0表示返回节日或者空;1表示返回节日或者距离节日多少天Dim riqi As StringDim tempriqi(9 To 2000) As String, s As String, j As Integerj = 9riqi = Format(myyear & "-" & month & "-" & day, "yyyy-mm-dd")Dim tsjr(1 To 500) As String '节日日期Dim jierimc(1 To 500) As String '节日名称'以下为特殊节日,某月的第几个星期几的节日tsjr(1) = getweek(myyear, 11, 4, 4) '感恩节tsjr(2) = getweek(myyear, 5, 2, 0) '母亲节tsjr(3) = getweek(myyear, 6, 3, 0) '父亲节tsjr(4) = getweek(myyear, 9, 3, 2) '国际和平日tsjr(5) = getweek(myyear, 9, 4, 0) '国际聋人节tsjr(6) = getweek(myyear, 5, 3, 0) '全国助残节tsjr(7) = getweek(myyear, 9, 3, 6) '全国国防教育日tsjr(8) = getweek(myyear, 10, 2, 3) '国际减轻自然灾害jrmc = Array("感恩节", "母亲节", "父亲节", "国际和平日", "国际聋人节", "全国助残节", "全国国防教育日", "国际减轻自然灾害")For I = 1 To 8 '将特殊节日名称正规化jierimc(I) = jrmc(I - 1)Next IIf Dir(App.Path & "/festival.txt") <> "" Then '加载文件中更多节日信息Open App.Path & "/festival.txt" For Input As #1Do While Not EOF(1)Line Input #1, sIf s <> "" And Left(s, 1) = "&" Thentempriqi(j) = Right(s, Len(s) - 1)j = j + 1End IfLoopClose #1Dim tempyue As String, tempri As String, tempjieri As String '解读节日数据信息Dim t(1 To 3) As IntegerFor I = 9 To jIf InStr(tempriqi(I), "月") <> 0 And InStr(tempriqi(I), "日") <> 0 And InStr(tempriqi(I), "-") <> 0 Thent(1) = InStr(tempriqi(I), "月")t(2) = InStr(tempriqi(I), "日")t(3) = InStr(tempriqi(I), "-")tempyue = Left(tempriqi(I), t(1) - 1)tempri = Mid(tempriqi(I), t(1) + 1, t(2) - t(1) - 1)tempjieri = Right(tempriqi(I), Len(tempriqi(I)) - t(3))tsjr(I) = Format(myyear & "-" & tempyue & "-" & tempri, "yyyy-mm-dd")jierimc(I) = tempjieriEnd IfNext IEnd If'完成加载所有节日信息'此时注释:tsjr(1 to 500) 为节日日期;jierimc(1 To 500) 为对应节日名称Select Case mymsCase "0" '模式0,表示结果只返回节日或者空xqjr = ""For I = 1 To jIf riqi = tsjr(I) Thenxqjr = jierimc(I)Exit FunctionEnd IfNext ICase "1" '模式1,表示提示距离最近的节日有多少天Dim min As Integer, myday As IntegerDim sjc(1 To 500) As IntegerFor I = 1 To j - 1 '计算所有节日的时间差If DateDiff("d", riqi, tsjr(I)) >= 0 Thensjc(I) = DateDiff("d", riqi, tsjr(I))Elsesjc(I) = 365End IfNext Imin = sjc(1)For I = 1 To j - 1 '找出最小时间差的节日If min >= sjc(I) Thenmin = sjc(I)myday = IEnd IfNext ISelect Case min '时间差(天数)判断Case 0xqjr = "今天是" & jierimc(myday)Case 1xqjr = "明天为" & jierimc(myday)Case 2xqjr = "后天为" & jierimc(myday)Case Elsexqjr = "距离" & jierimc(myday) & "还有" & min & "天"End SelectEnd SelectEnd Function

3、一.上述函数没有任何文件的前提下,只能显示八个特殊的节日,如感恩节、父亲节等二.如果需要添加更多的节日,请在程序目录添加festival.txt文件,里面存放更多的节日信息格式如:&1月1日-元旦三.附录节日信息:&1月1日-元旦&2月2日-世界湿地日&2月14日-情人节&3月3日-全国爱耳日&3月5日-青年志愿者服务日&3月8日-国际妇女节&3月9日-保护母亲河日&3月12日-中国植树节&3月14日-白色情人节&3月14日-国际警察日&3月15日-世界消费者权益日&3月21日-世界森林日&3月22日-世界水日&3月23日-世界气象日&3月24日-世界防治结核病日&4月1日-愚人节&4月5日-清明节&4月7日-世界卫生日&4月22日-世界地球日&4月26日-世界知识产权日&5月1日-国际劳动节&5月3日-世界哮喘日&5月4日-中国青年节&5月8日-世界红十字日&5月12日-国际护士节&5月15日-国际家庭日&5月17日-世界电信日&5月20日-全国学生营养日&5月23日-国际牛奶日&5月31日-世界无烟日&6月1日-国际儿童节&6月5日-世界环境日&6月6日-全国爱眼日&6月17日-世界防治荒漠化和干旱日&6月23日-国际奥林匹克日&6月25日-全国土地日&6月26日-国际禁毒日&7月1日-中国共产党诞生日&7月7日-中国人民抗日战争纪念日&7月11日-世界人口日&8月1日-中国人民解放军建军节&8月12日-国际青年节&9月8日-国际扫盲日&9月10日-中国教师节&9月16日-中国脑健康日&9月20日-全国爱牙日&9月21日-世界停火日&9月27日-世界旅游日&10月1日-国庆节&10月4日-世界动物日&10月5日-世界教师日&10月8日-全国高血压日&10月9日-世界邮政日&10月10日-世界精神卫生日&10月14日-世界标准日&10月15日-国际盲人节&10月16日-世界粮食日&10月17日-国际消除贫困日&10月24日-世界发展新闻日&10月28日-中国男性健康日&10月29日-国际生物多样性日&10月31日-万圣节&11月8日-中国记者节&11月9日-消防宣传日&11月14日-世界糖尿病日&11月17日-国际大学生节&11月25日-国际消除对妇女的暴力日&12月1日-世界爱滋病日&12月3日-世界残疾人日&12月4日-全国法制宣传日&12月9日-世界足球日&12月24日-平安夜&12月25日-圣诞节&12月29日-国际生物多样性日

vb获取当天的公历节日并显示倒计时
  • VB 中如何为Toolbar 按钮添加图片?
  • VB6.0中命令按钮的使用
  • 如何利用VBA代码插入平行四边形
  • 用VB6.0找出升序数
  • VB中如何利用列表框控制滚动条的长短?
  • 热门搜索
    精美手抄报图片 七彩童年手抄报图片 放飞梦想手抄报素材 地理手抄报图片 知法守法手抄报内容 古诗词手抄报内容 关于健康的手抄报图片 综合实践手抄报 向国旗敬礼手抄报内容 体育节手抄报