簡體   English   中英

從DateTime將過期日期轉換為格式為dd / mm / yyyy 00:00:00的字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM