ヘッダー
Visual Basic サンプル集
VB2005対応 VB2008対応 VB2010対応 VB2012対応 VB2013対応 VB2015対応 VB2017対応 VB2019対応

月末を求める

公開日 2020/6/17 最終更新日 2020/7/19

→ C# のサンプルに切り替える

 

2024年2月の月末の 日付 を取得する

VB.NET2002対応 VB.NET2003対応 VB2005対応 VB2008対応 VB2010対応 VB2012対応 VB2013対応 VB2015対応 VB2017対応 VB2019対応

'まず月の始めの1日の日付を作成する。
Dim firstDate As Date = New Date(2024, 2, 1)

'1ヶ月後の1日前を求める
Dim lastDate As Date = firstDate.AddMonths(1).AddDays(-1)

Debug.WriteLine(lastDate.ToString("yyyy\/MM\/dd")) '2024/02/29 と表示されます。

Debug.WriteLineが表示される場所

 

2024年2月の月末が 何日か を取得する

VB.NET2002対応 VB.NET2003対応 VB2005対応 VB2008対応 VB2010対応 VB2012対応 VB2013対応 VB2015対応 VB2017対応 VB2019対応

Dim lastDay As Integer = Date.DaysInMonth(2024, 2)

Debug.WriteLine(lastDay) '29 と表示されます。

Debug.WriteLineが表示される場所

 

月末を返す関数

次の関数は引数に渡された日付の月末の日付を返します。

VB.NET2002対応 VB.NET2003対応 VB2005対応 VB2008対応 VB2010対応 VB2012対応 VB2013対応 VB2015対応 VB2017対応 VB2019対応

''' <summary>
''' targetDateで指定した月の月末の日付を求めます。
''' targetDateに時刻を含む場合、時刻は0:00:00になります。
''' </summary>
Public Function GetEndOfMonth(targetDate As Date) As Date
    'まず月の始めの1日の日付を作成する。
    Dim firstDate As Date = New Date(targetDate.Year, targetDate.Month, 1)

    '1ヶ月後の1日前を求める
    Dim lastDate As Date = firstDate.AddMonths(1).AddDays(-1)

    Return lastDate
End Function

呼び出し例

VB.NET2002対応 VB.NET2003対応 VB2005対応 VB2008対応 VB2010対応 VB2012対応 VB2013対応 VB2015対応 VB2017対応 VB2019対応

Dim theDate As Date = New Date(2024, 6, 27)

Dim lastDate As Date = GetEndOfMonth(theDate)

Debug.WriteLine(lastDate.ToString("yyyy\/MM\/dd")) '2024/06/30 と表示されます。

Debug.WriteLineが表示される場所