C# DateTime处理日+;月
我需要在一周开始和结束时用月份名称排一行 我有一个日历控件,用于设置日期 并具有以下功能:C# DateTime处理日+;月,c#,windows-phone-7,windows-phone-8,C#,Windows Phone 7,Windows Phone 8,我需要在一周开始和结束时用月份名称排一行 我有一个日历控件,用于设置日期 并具有以下功能: public string DateToString(DateTime date) { string callback = ""; return callback; } 我不知道如何处理周开始和周结束的日期和月份 我需要字符串看起来像
public string DateToString(DateTime date)
{
string callback = "";
return callback;
}
我不知道如何处理周开始和周结束的日期和月份
我需要字符串看起来像<如果结束和开始是不同的月份:
7月29日至4日。2013年8月
同月:
15-21。如果mounth相同,则为2013年7月。您能帮助我吗?也许您想将两个
DateTime
参数传递给该方法,这样更有意义:
public static string DateToString(DateTime dateStart, DateTime dateEnd)
{
if (dateStart.Year == dateEnd.Year && dateStart.Month == dateEnd.Month)
{
return string.Format("{0} - {1}, {2}"
, dateStart.ToString("dd")
, dateEnd.ToString("dd MMMM", CultureInfo.InvariantCulture)
, dateStart.Year);
}
else if (dateStart.Year == dateEnd.Year)
{
return string.Format("{0} - {1}, {2}"
, dateStart.ToString("dd MMMM", CultureInfo.InvariantCulture)
, dateEnd.ToString("dd MMMM", CultureInfo.InvariantCulture)
, dateStart.Year);
}
else
{
return string.Format("{0} - {1}"
, dateStart.ToString("dd MMMM yyyy", CultureInfo.InvariantCulture)
, dateEnd.ToString("dd MMMM yyyy", CultureInfo.InvariantCulture));
}
}
您的示例数据:
var dt1 = new DateTime(2013, 07, 29);
var dt2 = new DateTime(2013, 08, 04);
Console.Write(DateToString(dt1, dt2));
dt1 = new DateTime(2013, 07, 15);
dt2 = new DateTime(2013, 07, 21);
Console.Write(DateToString(dt1, dt2));
输出:
29 July - 04 August, 2013:
15 - 21 July, 2013
所以根据你的评论,你有一个约会时间,你需要先找到一周的开始和结束。然后,您需要根据以下两个日期构建字符串:
public static DateTime StartOfWeek(DateTime dt, DayOfWeek startOfWeek)
{
int diff = dt.DayOfWeek - startOfWeek;
if (diff < 0)
{
diff += 7;
}
return dt.AddDays(-1 * diff).Date;
}
印刷品:
12 - 18 August, 2013
在一个日期时间内结束和开始?想知道你发布的函数做什么?所以这是主要问题,我需要根据给定的日期计算结束和开始日期。这意味着,我给出了:14.08.2013,它找出了周的开始日期(11.08.2013)和结束日期(17.08.2013)。您使用的文化是什么,您的周从什么时候开始?星期一-是beginning@Cheese:编辑我的答案。请编辑您的问题以澄清您的要求。这一点一开始并不明显。那么否决票也将被删除。
12 - 18 August, 2013