看到C#那边出了一个打印本月月历的题目,就打算用vb实现下。帖子具体地址: http://topic.csdn.net/u/20110630/19/743bdaf7-ed26-47c3-a02d-6ed9fa58f0f4.html
因为vb里没有什么linq,所以就用纯字符串操作了,代码如下:
Private Sub Form_Load() Dim s$,i%,strDatePre$,d1 As Date strDatePre = DatePart("yyyy",Now) & "-" & DatePart("m",Now) & "-" s = "SU MO TU WE TH FR SA" & vbCrLf Do i = i + 1 d1 = strDatePre & i If i = 1 Then s = s & Space((DatePart("w",d1) - 1) * 3) s = s & Space(2 - Len(CStr(i))) & i & " " If DatePart("w",d1) = 7 Then s = s & vbCrLf If DatePart("d",d1 + 1) = 1 Then Exit Do Loop MsgBox s End Sub
输出结果: SU MO TU WE TH FR SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
稍稍修改了下,使得程序可以打印全年的,代码如下: Private Sub Form_Load() Dim s$,intMonth%,d1 As Date For intMonth = 1 To 12 strDatePre = DatePart("yyyy",Now) & "-" & intMonth & "-" s = DatePart("yyyy",Now) & "年" & intMonth & "月" & vbCrLf & "SU MO TU WE TH FR SA" & vbCrLf i = 0 Do i = i + 1 d1 = strDatePre & i If i = 1 Then s = s & Space((DatePart("w",d1) - 1) * 3) s = s & Space(2 - Len(CStr(i))) & i & " " If DatePart("d",d1 + 1) = 1 Then Exit Do Else If DatePart("w",d1) = 7 Then s = s & vbCrLf Loop Debug.Print s & vbCrLf Next End Sub
输出结果为: 2013年1月 SU MO TU WE TH FR SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2013年2月 SU MO TU WE TH FR SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2013年3月 SU MO TU WE TH FR SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2013年4月 SU MO TU WE TH FR SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 2013年5月 SU MO TU WE TH FR SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2013年6月 SU MO TU WE TH FR SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 2013年7月 SU MO TU WE TH FR SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2013年8月 SU MO TU WE TH FR SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2013年9月 SU MO TU WE TH FR SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 2013年10月 SU MO TU WE TH FR SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2013年11月 SU MO TU WE TH FR SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 2013年12月 SU MO TU WE TH FR SA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31