您的位置:首页 > 其它

将日期字符串格式化为年月日格式如2011-12-14 、16日、18日-19日、21日、23日、25日-26日、28日

2011-12-13 16:27 204 查看
/// <summary>
/// 格式化出发日期
/// </summary>
/// <param name="AllDepartDate">2010年10月4日 2010年10月7日 2010年10月11日</param>
/// <returns>对同一个月内连续的日期做了格式化。跨月和跨年的日期重新起行。日期不连续的用、隔开。2010年1月1日-2010年1月5日</returns>
public static string FormatDepartDate(string AllDepartDate, int showCount)
{
//2010年10月14日

string[] Array_AllDepartDate = AllDepartDate.Trim().Split(',');

IEnumerable<String> querys = Array_AllDepartDate.OrderBy(a => Convert.ToDateTime(a));

int ArrLength = querys.Count();
int Count = 0;

StringBuilder m_FormatDate = new StringBuilder(512);

if (ArrLength > showCount)
{
Count = showCount;
}
else
{
Count = ArrLength;
}

for (int iLoop = 0; iLoop < Count; iLoop++)
{
if (iLoop == 0)
{
m_FormatDate.Append(querys.ElementAt(0).ToString());
}
else
{
DateTime m_DateTime = Convert.ToDateTime(querys.ElementAt(iLoop - 1));
DateTime m_DateTime1 = Convert.ToDateTime(querys.ElementAt(iLoop));

//判断是否同一年
if (m_DateTime1.Year == m_DateTime.Year)
{
//是同一个月
if (m_DateTime1.Month == m_DateTime.Month)
{
//判断日期是否连续
IsEqualDay(m_FormatDate, ref m_DateTime, ref m_DateTime1);
}
else
{
m_FormatDate.AppendFormat("、{0}月{1}日", m_DateTime1.Month.ToString("00"), m_DateTime1.Day.ToString("00"));
}
}
else
{
m_FormatDate.AppendFormat("、{0}年{1}月{2}日", m_DateTime1.Year.ToString("0000"), m_DateTime1.Month.ToString("00"), m_DateTime1.Day.ToString("00"));
}
}
}

return m_FormatDate.ToString();
}

private static void IsEqualDay(StringBuilder m_FormatDate, ref DateTime m_DateTime, ref DateTime m_DateTime1)
{
if (m_DateTime1.Day - m_DateTime.Day == 1)
{
if (m_FormatDate.ToString().LastIndexOf(string.Format("-{0}", m_DateTime.Day.ToString("00"))) > 0)
m_FormatDate.Replace(string.Format("-{0}", m_DateTime.Day.ToString("00")), string.Format("-{0}", m_DateTime1.Day.ToString("00")));
else
m_FormatDate.AppendFormat("-{0}日", m_DateTime1.Day.ToString("00"));
}
else
{
m_FormatDate.AppendFormat("、{0}日", m_DateTime1.Day.ToString("00"));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: