我正在学习创建一个交互式程序,用户可以在不同的行中输入他们的确切生日(月;日,年),但我不知道如何使用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
属性以及如何将其与条件语句合作。请帮忙。感谢
答案 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.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");
}