2012-10-10 と 2012-12-31 の 2 つの日付があるとします。このようなテーブルにデータエントリを作成したい
Start Date End Date
2012-10-10 2012-10-31
2012-11-01 2012-11-30
2012-12-01 2012-12-31
任意のコードまたはアルゴリズムを高く評価します。
このようなもの:
class Program
{
public static DateTime FirstDayOfMonthFromDateTime(DateTime dateTime)
{
return new DateTime(dateTime.Year, dateTime.Month, 1);
}
public static DateTime LastDayOfMonthFromDateTime(DateTime dateTime)
{
DateTime firstDayOfTheMonth = new DateTime(dateTime.Year, dateTime.Month, 1);
return firstDayOfTheMonth.AddMonths(1).AddDays(-1);
}
static void Main(string[] args)
{
var date1 = new DateTime(2012, 10, 10);
var date2 = new DateTime(2012, 12, 31);
Console.Out.WriteLine(date1.ToShortDateString() + "\t" + LastDayOfMonthFromDateTime(date1).ToShortDateString());
while (LastDayOfMonthFromDateTime(date1) < date2)
{
date1 = date1.AddMonths(1);
Console.Out.WriteLine(FirstDayOfMonthFromDateTime(date1).ToShortDateString() + "\t" + LastDayOfMonthFromDateTime(date1).ToShortDateString());
}
Console.ReadLine();
}
}
これにより、次の出力が得られます。
2012/10/10 2012/10/31
2012/11/01 2012/11/30
2012/12/01 2012/12/31
( devpriseから最初/最後の関数をプルしました。)