指定した年月の末日を求める |
指定した年月の末日を求める (055) | |
テキストボックスに年月(”2002/2”) を入力するとその月の末日がラベルに表示される(オーソドックスなやり方) 使用例 Option Explicit 'SampleNo=055 WindowsXP VB6.0(SP5) 2002.05.13 Private Sub Command1_Click() Dim yy As Integer Dim MM As Integer Dim matubi As Integer '年を取り出している yy = Year(DateValue(Text1.Text)) '月を取り出している MM = Month(DateValue(Text1.Text)) If MM <> 2 Then '2月でない場合の処理 Select Case MM Case 1, 3, 5, 7, 8, 10, 12 matubi = 31 Case 4, 6, 9, 11 matubi = 30 End Select Else If yy Mod 4 Then '4で割り切れなければうるう年でない matubi = 28 ElseIf yy Mod 100 Then '4で割り切れ100で割り切れないとうるう年 matubi = 29 ElseIf yy Mod 400 Then '4で割り切れ400で割り切れないとうるう年でない matubi = 28 Else matubi = 29 End If End If Label2.Caption = "末日は " & matubi & " 日です" End Sub |
|
ゆう(U)さん投稿による簡単な方法 | |
Private Sub Command2_Click() '指定月の翌月の1日の日付から1日を引くと指定月の末日となる Dim matubi As Integer matubi = Day(DateAdd("d", -1, DateAdd("m", 1, DateValue(Text1.Text)))) Label2.Caption = "末日は " & matubi & " 日です" End Sub |
|
うるう年を求める方法として IsDate 関数を使う方法もあるもともと IsDate関数は式が日付データかどうか判断する関数で日付データならTrueを返し日付データでなければFalseを返す。 それを利用して**年2月29日があれば日付データなければ日付データでない、すなわちうるう年でないと判断する。 使用例 Private Sub Command3_Click() '指定年の2月29日があればうるう年 If IsDate(Year(DateValue(Text1.Text)) & "/2/29") Then '日付型データと判断される(2月29日がある) Label2.Caption = "うるう年です" Else '日付型データで無いと判断される(2月29日は無い) Label2.Caption = "うるう年ではありません" End If End Sub |
2002/05/13