VB打印本月的月历 vb打印日历 sysdzw

本文介绍了一个使用VB编写的程序,该程序能够生成当前月份的月历以及整年的月历。通过纯字符串操作实现了日期格式化和排列,适用于需要在VB环境中生成日历的应用场景。

看到C#那边出了一个打印本月月历的题目,就打算用vb实现下。帖子具体地址:
http://topic.youkuaiyun.com/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$, i%, intMonth%, strDatePre$, 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 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无·法

别打赏了,这C币又不能买咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值