C# 将overdueDate从日期时间转换为格式为dd/mm/yyyy 00:00:00的字符串

C# 将overdueDate从日期时间转换为格式为dd/mm/yyyy 00:00:00的字符串,c#,date,datetime,C#,Date,Datetime,如何将值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 ==

如何将值overdueDateDateTime变量转换为格式为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);
    }
要提供更详细的信息,请参考现有的文档

这里需要注意的一点是,
ToString
可以根据文档列出您可以设想的任何日期

要提供更详细的信息,请参考现有的文档


这里需要注意的一点是,
ToString
可以根据文档列出您可以构思的任何日期。

因为您只需要
date
部分时间设置为
00:00:00
,您可以使用该属性并将其格式化为:

string str = overdueDate.Date.ToString("dd/MM/yyy HH:mm:ss");
见:

在声明时,您还没有初始化您的
overdueDate
,尽管您正在您的条件中为它赋值,但编译器无法确定是否会给它赋值。因此会出现错误“使用未分配的局部变量”。就这样宣布吧:

DateTime overdueDate = default(DateTime);

由于您只需要时间设置为
00:00:00
Date
部件,因此可以使用该属性并将其格式化为:

string str = overdueDate.Date.ToString("dd/MM/yyy HH:mm:ss");
见:

在声明时,您还没有初始化您的
overdueDate
,尽管您正在您的条件中为它赋值,但编译器无法确定是否会给它赋值。因此会出现错误“使用未分配的局部变量”。就这样宣布吧:

DateTime overdueDate = default(DateTime);

我不是100%确定你想要实现什么,但我相信下面是一个更有效的方法

DateTime overdueDate = DateTime.Now.AddDays(-7);
while (overdueDate.DayOfWeek != DayOfWeek.Wednesday)
    overdueDate = overdueDate.AddDays(-1);

我不是100%确定你想要实现什么,但我相信下面是一个更有效的方法

DateTime overdueDate = DateTime.Now.AddDays(-7);
while (overdueDate.DayOfWeek != DayOfWeek.Wednesday)
    overdueDate = overdueDate.AddDays(-1);

您尚未初始化
overdueDate
,请执行
DateTime overdueDate=default(DateTime)在初始化时。这是到目前为止我的代码-。我已经按照你的建议做了,但我还是有错误message@methuselah,您没有像我在评论和回答中所说的那样定义过多的日期。只需将
overdueDate
的声明替换为
DateTime overdueDate=default(DateTime)
在第7行,我现在得到以下错误消息:
名称“odDate”在当前上下文中不存在
使用未分配的局部变量“odDate”
@methuselah,声明
字符串odDate=string.Empty
字符串odDate=null
您尚未初始化
overdueDate
,请执行
DateTime overdueDate=default(DateTime)在初始化时。这是到目前为止我的代码-。我已经按照你的建议做了,但我还是有错误message@methuselah,您没有像我在评论和回答中所说的那样定义过多的日期。只需将
overdueDate
的声明替换为
DateTime overdueDate=default(DateTime)
在第7行,我现在得到以下错误消息:
名称“odDate”在当前上下文中不存在
使用未分配的局部变量“odDate”
@methuselah,声明
字符串odDate=string.Empty
字符串odDate=null
你不需要那么多的
if
语句,你可以通过转换成int然后做一些基本的算术来得到
DayOfWeek
的数值。你不需要那么多
if
语句,你可以通过转换成int然后做一些基本的算术来得到
DayOfWeek
的数值。