日付範囲を受け入れるWebサービスがあり、大量のデータがインポートされているため、日付範囲パラメーターを1か月間のみ渡しています。
許容される開始日の形式:1-apr-2012
許容される終了日の形式:2012年4月30日
2012年1月1日から2012年8月31日までのように、過去2年間の毎月の開始日と終了日をプログラムで送信したい
以下は私がテストを開始したコードのサンプルですが、終了日と1か月を追加すると30日間のスパンが得られます。
static void Main(string[] args)
{
string startDt = "1-apr-2011";
string endDt = "30-apr-2012";
DateTime dt = Convert.ToDateTime(startDt);
DateTime dt2 = Convert.ToDateTime(endDt);
CultureInfo culture = CultureInfo.GetCultureInfo("en-GB");
//Console.WriteLine(value.ToString("D", culture));
while (dt < dt2)
{
Console.WriteLine(dt.ToString("D", culture));
// Console.WriteLine(String.Format("{0:dd-MM-yyyy}", dt));
dt = dt.AddMonths(1);
}
Console.ReadLine();
}
修正されたコード:
static void Main(string[] args)
{
string startDt = "1-apr-2011";
string endDt = "30-apr-2012";
DateTime dt = Convert.ToDateTime(startDt);
DateTime dt2 = Convert.ToDateTime(endDt);
CultureInfo culture = CultureInfo.GetCultureInfo("en-GB");
while (dt < dt2)
{
DateTime dtend = new DateTime(dt.Year, dt.Month, DateTime.DaysInMonth(dt.Year, dt.Month));
Console.WriteLine(dt.ToString("D", culture));
Console.WriteLine(dtend.ToString("D", culture));
dt = dt.AddMonths(1);
}
Console.ReadLine();
}