[英]Converting overdueDate from a DateTime to string in the format dd/mm/yyyy 00:00:00
如何將overdueDate的值從DateTime變量轉換為dd / mm / yyyy 00:00:00格式的字符串?
DateTime overdueDate;
DateTime today = DateTime.Now;
if (today.DayOfWeek == DayOfWeek.Monday)
{
overdueDate = today.AddDays(-12);
}
else if (today.DayOfWeek == DayOfWeek.Tuesday)
{
overdueDate = today.AddDays(-13);
}
else if (today.DayOfWeek == DayOfWeek.Wednesday)
{
overdueDate = today.AddDays(-7);
}
else if (today.DayOfWeek == DayOfWeek.Thursday)
{
overdueDate = today.AddDays(-8);
}
else if (today.DayOfWeek == DayOfWeek.Friday)
{
overdueDate = today.AddDays(-9);
}
else if (today.DayOfWeek == DayOfWeek.Saturday)
{
overdueDate = today.AddDays(-10);
}
else if (today.DayOfWeek == DayOfWeek.Sunday)
{
overdueDate = today.AddDays(-11);
}
由於只需要將Date
部分的時間設置為00:00:00
,因此可以使用DateTime.Date
屬性並將其格式化為:
string str = overdueDate.Date.ToString("dd/MM/yyy HH:mm:ss");
請參閱: 自定義日期和時間格式字符串
在聲明時,您尚未初始化overdueDate
,盡管您在條件內為其分配了一些值,但編譯器無法確定是否將任何值分配給它。 因此,您將收到錯誤“使用未分配的局部變量”。 只需像這樣聲明:
DateTime overdueDate = default(DateTime);
var dateString = overdueDate.ToString("dd/MM/yyyy HH:mm:ss");
為了給您更詳細的信息,請參考有關自定義日期時間格式字符串的文檔。
這里要注意的一件事是, ToString
可以根據文檔列出您可以設想的任何日期。
我不確定您要達到的目標是100%,但是我相信以下是一種更有效的方法。
DateTime overdueDate = DateTime.Now.AddDays(-7);
while (overdueDate.DayOfWeek != DayOfWeek.Wednesday)
overdueDate = overdueDate.AddDays(-1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.