如何在c#中查看日期? (互动节目)

时间:2018-04-01 05:47:29

标签: c# datetime if-statement

我正在学习创建一个交互式程序,用户可以在不同的行中输入他们的确切生日(月;日,年),但我不知道如何使用DateTime.Now属性。我知道month必须是1到12所以我写了

if (month<1  && month>13)
{Console.WriteLine("error");}

+ "year"字段,必须是18到100年前。

if(year >2000 &&year <1918)
{Console.WriteLine("error");}
问题是,我必须每年改变条件。我还想检查"day"字段和month字段之间的关系。例如2月只有28天;如果超出day字段,则提示“错误”。我知道它很复杂,但我不太了解DateTime属性以及如何将其与条件语句合作。请帮忙。感谢

2 个答案:

答案 0 :(得分:1)

 dateString = "2011-29-01";//concatenate fields to get date
 string format = "yyyy-dd-MM";
 try
 {
   //for ParseExact : https://msdn.microsoft.com/en-us/library/w2sa9yss(v=vs.110).aspx
   result = DateTime.ParseExact(dateString, format, provider);
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
  }
  catch (FormatException)
  {
    Console.WriteLine("{0} is not in the correct format.", dateString);
   }

   if(result.AddYears(18)<=Datetime.now){
   //write your logic
   }

答案 1 :(得分:0)

您可以使用

DateTime.Year Property

  

获取此实例表示的日期的年份组件。

DateTime.DaysInMonth Method (Int32, Int32)

  

返回指定月份和年份的天数。

<强>例如

var currentYear = DateTime.Now.Year;

if (year > currentYear - 18 || year < currentYear - 118)
{
   Console.WriteLine("error"); 

}

var days = DateTime.DaysInMonth(year, 2);

// calculate the days in February for a given year
if (day > days || day < 0)
{
   Console.WriteLine("error");

}