推扬网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
推扬网 门户 你问我答 查看内容

范诗然:求VB中万年历的算法

2020-8-12 12:48| 发布者: admin| 查看: 78| 评论: 0

摘要: 迗迗想伱的回答: 代码如下: Private Sub Command1_Click() Cls x = Text1.Text y = Text2.Text If Text1 = "" Or Text2 = "" Then Text1.SetFocus MsgBox "请输入完整数据!" GoTo a1 End If Select Cas ...

迗迗想伱的回答:

代码如下:

Private Sub Command1_Click() Cls x = Text1.Text y = Text2.Text If Text1 = "" Or Text2 = "" Then Text1.SetFocus MsgBox "请输入完整数据!" GoTo a1 End If

Select Case x Case 100 To 9999 GoTo a2 Case Else MsgBox "你所输入的年份不合法,请重新输入!" GoTo a1 End Select

a2:

Select Case y Case 1 To 12 GoTo a3 Case Else MsgBox "你所输入的月份不合法,请重新输入!" GoTo a1 End Select

a3:

If y < 12 Then Label1.Caption = Str(x) + "年" + Str((y)) + "月的月历为:" z = DateDiff("d", Str(x) + "-" & Str(y) + "-1", Str(x) + "-" + Str(y + 1) & "-1") Else Label1.Caption = x + "年" + y + "月的月历为:" z = DateDiff("d", Str(x) + "-" & Str(y) + "-1", Str(x + 1) + "-" + Str((y + 1) Mod 12) & "-1") End If CurrentY = 250 Print "SUN", "MOD", "TUE", "WED", "THU", "FRI", "SAT" a = Weekday(Str(x) + "-" + Str(y) + "-1")

Select Case a

Case 1 For i = 1 To z t = t + 1 If Day(Now) = i Then ForeColor = vbRed Print i, Else ForeColor = vbBlack Print i, End If If t Mod 7 = 0 Then Print End If Next

Case 2 t = 1 Print , For i = 1 To z t = t + 1 If Day(Now) = i Then ForeColor = vbRed Print i, Else ForeColor = vbBlack Print i, End If If t Mod 7 = 0 Then Print End If Next

Case 3 t = 2 Print , , For i = 1 To z t = t + 1 If Day(Now) = i Then ForeColor = vbRed Print i, Else ForeColor = vbBlack Print i, End If If t Mod 7 = 0 Then Print End If Next

Case 4 t = 3 Print , , , For i = 1 To z t = t + 1 If Day(Now) = i Then ForeColor = vbRed Print i, Else ForeColor = vbBlack Print i, End If If t Mod 7 = 0 Then Print End If Next

Case 5 t = 4 Print , , , , For i = 1 To z t = t + 1 If Day(Now) = i Then ForeColor = vbRed Print i, Else ForeColor = vbBlack Print i, End If If t Mod 7 = 0 Then Print End If Next

Case 6 t = 5 Print , , , , , For i = 1 To z t = t + 1 If Day(Now) = i Then ForeColor = vbRed Print i, Else ForeColor = vbBlack Print i, End If If t Mod 7 = 0 Then Print End If Next

Case 7 t = 6 Print , , , , , , For i = 1 To z t = t + 1 If Day(Now) = i Then ForeColor = vbRed Print i, Else ForeColor = vbBlack Print i, End If If t Mod 7 = 0 Then Print End If

Next

End Select a1: End Sub

附图:

时间是100---9999年之间!谢谢采纳!

迗迗想伱的回答:

代码如下:

Private Sub Command1_Click() Cls x = Text1.Text y = Text2.Text If Text1 = "" Or Text2 = "" Then Text1.SetFocus MsgBox "请输入完整数据!" GoTo a1 End If

Select Case x Case 100 To 9999 GoTo a2 Case Else MsgBox "你所输入的年份不合法,请重新输入!" GoTo a1 End Select

a2:

Select Case y Case 1 To 12 GoTo a3 Case Else MsgBox "你所输入的月份不合法,请重新输入!" GoTo a1 End Select

a3:

If y < 12 Then Label1.Caption = Str(x) + "年" + Str((y)) + "月的月历为:" z = DateDiff("d", Str(x) + "-" & Str(y) + "-1", Str(x) + "-" + Str(y + 1) & "-1") Else Label1.Caption = x + "年" + y + "月的月历为:" z = DateDiff("d", Str(x) + "-" & Str(y) + "-1", Str(x + 1) + "-" + Str((y + 1) Mod 12) & "-1") End If CurrentY = 250 Print "SUN", "MOD", "TUE", "WED", "THU", "FRI", "SAT" a = Weekday(Str(x) + "-" + Str(y) + "-1")

Select Case a

Case 1 For i = 1 To z t = t + 1 If Day(Now) = i Then ForeColor = vbRed Print i, Else ForeColor = vbBlack Print i, End If If t Mod 7 = 0 Then Print End If Next

Case 2 t = 1 Print , For i = 1 To z t = t + 1 If Day(Now) = i Then ForeColor = vbRed Print i, Else ForeColor = vbBlack Print i, End If If t Mod 7 = 0 Then Print End If Next

Case 3 t = 2 Print , , For i = 1 To z t = t + 1 If Day(Now) = i Then ForeColor = vbRed Print i, Else ForeColor = vbBlack Print i, End If If t Mod 7 = 0 Then Print End If Next

Case 4 t = 3 Print , , , For i = 1 To z t = t + 1 If Day(Now) = i Then ForeColor = vbRed Print i, Else ForeColor = vbBlack Print i, End If If t Mod 7 = 0 Then Print End If Next

Case 5 t = 4 Print , , , , For i = 1 To z t = t + 1 If Day(Now) = i Then ForeColor = vbRed Print i, Else ForeColor = vbBlack Print i, End If If t Mod 7 = 0 Then Print End If Next

Case 6 t = 5 Print , , , , , For i = 1 To z t = t + 1 If Day(Now) = i Then ForeColor = vbRed Print i, Else ForeColor = vbBlack Print i, End If If t Mod 7 = 0 Then Print End If Next

Case 7 t = 6 Print , , , , , , For i = 1 To z t = t + 1 If Day(Now) = i Then ForeColor = vbRed Print i, Else ForeColor = vbBlack Print i, End If If t Mod 7 = 0 Then Print End If

Next

End Select a1: End Sub

附图:

时间是100---9999年之间!谢谢采纳!


鲜花

握手

雷人

路过

鸡蛋

最新评论

热门推荐
最新资讯

广告服务|投稿要求|禁言标准|版权说明|免责声明|手机版|小黑屋|推扬网 ( 粤ICP备18134897号 )|网站地图 | 邮箱:vayae@hotmail.com

GMT+8, 2025-5-1 13:17 , Processed in 0.061170 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部