【发布时间】:2015-01-03 01:43:16
【问题描述】:
我正在尝试根据日期和时间格式创建原生消息传递应用程序所具有的内容,具体取决于经过的天数。
假设我创建了一条消息并在今天 2015 年 3 月 1 日星期六下午 2:21 发送它。格式应该是:
.ToString("h:mm tt"); //2:21 p.m.
这表示消息是在今天下午 2:21 发送的,格式在周日(明天)之前不会改变。
此 DateTime 格式将一直保持到明天,即 04/01/2015, 12:00 AM,Sunday。现在格式应该是:
.ToString("ddd"); //Sat
现在这表明消息是在星期六发送的,当前格式在星期一之前不会改变,星期一是 05/01/2015, 12:00 AM, Monday。 p>
为此,我目前正在使用此功能:
public static string GetVisibleTime(DateTime time)
{
DateTime timeNow = DateTime.Now;
TimeSpan totalSpan = (timeNow - time);
if (totalSpan.TotalHours < 24)
{
return time.ToShortTimeString();
}
if (totalSpan.TotalDays < 7)
{
return time.ToString("ddd");
}
if (totalSpan.TotalDays < 14)
{
return time.ToString("ddd/MMM");
}
if (totalSpan.TotalDays < 365 && time.Year == timeNow.Year)
{
return time.ToString("MM/yy");
}
return time.ToString("dd/MM/yy");
}
我的问题
现在假设我在今天下午 2:35 创建并发送了我的消息。在 2015 年 3 月 1 日 和明天 2015 年 4 月 1 日,我在下午 12:20 左右查看格式。格式仍为下午 2:35。 (在 h:mm tt 中)并且不会改变。唯一一次改变格式是在下午 2:35 之后。于 2015 年 4 月 1 日。我希望在第二天更改格式,而不需要等到今天的时间或日期与昨天的时间或日期匹配才能更改。如前所述,我试图让它像原生消息应用程序一样工作。
【问题讨论】:
标签: c# datetime windows-phone-8 format