日期:2014-05-17  浏览次数:20602 次

根据输入的字符串,生成特定的格式的字符串,求简单方法
根据用户输入的两个日期,我需要把这两个日期串接起来. 比如:
2013-01-01   2013-01-04
我需要生成2个字符串 
1. '2013-01-01','2013-01-02','2013-01-03','2013-01-04'
2. '[2013-01-01],[2013-01-02],[2013-01-03],[2013-01-04]'

我自己的办法是先用循环 累加日期成为需要的字符串,然后更具需求去replace分隔符.
有没有更神奇的办法来做啊?

------解决方案--------------------
IEnumerable<DateTime> DateRange(DateTime Start, DateTime End)
{
    for (DateTime dt = Start; dt < End.AddDays(1); dt = dt.AddDays(1))
        yield return dt;
}

使用
string s1 = string.Join(",", DateRange(dt1, dt2).Select(x => "'" + x.ToString("yyyy-MM-dd") + "'"));
string s2 = string.Join(",", DateRange(dt1, dt2).Select(x => "[" + x.ToString("yyyy-MM-dd") + "]"));
------解决方案--------------------
最直接的办法,将两个日期字符串,转为datetime,然后得到days的差值,从开始日期开始,AddDays(1),然后得到新日期,ToString("yyyy-mm-dd")后,拼接