C#,VBで指定した年、月で月末の日を取得する方法を紹介します。
サンプルコード(コンソールアプリケーション)もありますのでご活用ください。
今回使用するメソッドは、DateTime.DaysInMonthになります。
DaysInMonthは引数に指定した年、月の日数を返却します。
つまり、日数=月末日となるので、月末日を求めることができます。
もちろん、うるう年も問題なく29日と返却されます。
C#でDaysInMonthメソッドを利用したサンプルコードになります。
using System; namespace windev01 { class Program { static void Main(string[] args) { int y, m; for( y = 2019; y <= 2020; y++ ) { for( m = 1; m <= 12; m++ ) { Console.WriteLine(y + "/" + m + "/" + DateTime.DaysInMonth(y, m)); } } } } }
VBでDaysInMonthメソッドを利用したサンプルコードになります。
Module Module1 Sub Main() Dim y As Integer Dim m As Integer For y = 2019 To 2020 For m = 1 To 12 Console.WriteLine(y & "/" & m & "/" & DateTime.DaysInMonth(y, m)) Next Next End Sub End Module
上記、C#,VBのサンプルコードを実行した時の出力になります。
オリンピックイヤーである2020年2月が29日になっているのが確認できますね。
2019/1/31 2019/2/28 2019/3/31 2019/4/30 2019/5/31 2019/6/30 2019/7/31 2019/8/31 2019/9/30 2019/10/31 2019/11/30 2019/12/31 2020/1/31 2020/2/29 2020/3/31 2020/4/30 2020/5/31 2020/6/30 2020/7/31 2020/8/31 2020/9/30 2020/10/31 2020/11/30 2020/12/31
以上、C#, Visual Basic(VB)で月末を取得するサンプルコードの紹介でした。