【问题标题】:C# Console Date InputC# 控制台日期输入
【发布时间】:2019-02-15 06:37:39
【问题描述】:

C# 控制台应用程序... 用户如何在同一行以预格式化字符串“//”(日期/月/年)给出他的出生日期; 可以在下一个过程之前重新检查或更改字符串中的值; 非常感谢...

【问题讨论】:

  • 到目前为止你做了什么?
  • 先生。阿克巴。感谢您的代码。当 dateInput 为 e.x. 15/5/2015 可以,但是当 dateInput 是 e.x. 15/12/1975 发现错误...;;;

标签: c# date console


【解决方案1】:

嗨,你必须像这样使用 split

 Console.WriteLine("Please Enter Your DateTime: \n");
            //you input your string dateTime Like 2/12/2013

            string DateInput = Console.ReadLine();

            //split it
            string[] DateTimeArray = DateInput.Split('/');

            //String DateTime 
            string ResultStringDateTime="";

            //this loop is for create string DateTime with Type Like 2-12-2013
            for (int i = 0; i < DateTimeArray.Length; i++)
            {
                if (i==2)
                {
                    ResultStringDateTime += DateTimeArray[i];
                    continue;
                }
                ResultStringDateTime += DateTimeArray[i]+"-";
            }

            //if u want change you must change in this line 

            //this is DateTime Type Of your DateTime 
            DateTime myDate;

            //in this step if you have error this will be message else create date time 
            try
            {

                //out String DateTime
                myDate = Convert.ToDateTime(ResultStringDateTime);
                Console.WriteLine(myDate.ToShortDateString());
            }
            catch (Exception e)
            {
                Console.WriteLine("err "+e.Message );
            }

            Console.ReadLine();

希望能帮到你

【讨论】:

    【解决方案2】:

    如果您想“重新检查或更改指定日期时间的值”,我建议您使用此代码:

    Console.Write("Enter a date:");
    string input = Console.ReadLine(), format = "";
    
    try
    {
        if (input.Contains("-"))
        {
            format = "dd-MM-yyyy";
        }
        else if (input.Contains("/"))
        {
            format = "dd/MM/yyyy";
        }
        else if (input.Contains("."))
        {
            format = "dd.MM.yyyy";
        }
        else if (input.Contains(" "))
        {
            format = "dd MM yyyy";
        }
    
        DateTime date = DateTime.ParseExact(input, format, System.Globalization.CultureInfo.InvariantCulture);
        Console.WriteLine(date.ToShortDateString());
    }
    catch (Exception) { }
    
    Console.ReadLine();
    

    有了这个代码片段,你可以使用任何你想要的输入......

    DateTime 日期 = DateTime.ParseExact("2009-05-08 14:40:52,531", "yyyy-MM-dd HH:mm:ss,fff", System.Globalization.CultureInfo.InvariantCulture);

    ...您只需将格式“yyyy-MM-dd HH:mm:ss,fff”更改为您想要的格式。

    【讨论】:

      【解决方案3】:
              Console.WriteLine("Enter day of birth");
              DateTime dayOfBirth = Convert.ToDateTime(Console.ReadLine());
      

      现在你可以操纵你的时间了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多