我有一个接受日期范围的网络服务,由于大量数据导入,我只传递了 1 个月的日期范围参数。
可接受的开始日期格式:2012 年 4 月 1 日
可接受的结束日期格式:2012 年 4 月 30 日
我想以编程方式发送过去 2 年每个月的开始日期和结束日期,例如 2012 年 1 月 1 日至 2012 年 8 月 31 日
下面是我开始测试的示例代码,但是当添加结束日期加上 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();
}