C# 如何以有限制的特定格式询问出生日期?
我对C#很陌生,我想我脑子里想了些什么,但不太明白 所以我得到了这个学校项目,需要询问用户的名字、姓氏和出生日期,但有一定的限制。我能猜出名字,但日期问题仍然存在 出生日期应为C# 如何以有限制的特定格式询问出生日期?,c#,date,dob,C#,Date,Dob,我对C#很陌生,我想我脑子里想了些什么,但不太明白 所以我得到了这个学校项目,需要询问用户的名字、姓氏和出生日期,但有一定的限制。我能猜出名字,但日期问题仍然存在 出生日期应为DD.MM.YYYY。格式和格式有一定的限制: 日期应介于01-31之间 01-12之间的月份 1900-2050之间的年份 我可以让它询问,但它不会指定格式,我也不知道使用哪个变量。以自定义格式解析日期最合适 您只需要查找使用日期格式的区域性,例如“fr CH” 然后使用上述方法检查日期格式是否正确。它会自动检查日期是否
DD.MM.YYYY
。格式和格式有一定的限制:
日期应介于01-31之间
01-12之间的月份
1900-2050之间的年份
我可以让它询问,但它不会指定格式,我也不知道使用哪个变量。以自定义格式解析日期最合适
您只需要查找使用日期格式的区域性,例如“fr CH”
然后使用上述方法检查日期格式是否正确。它会自动检查日期是否有效,即月份在1到12之间,月份的日期在正确的范围内(1到28、29、30或31,具体取决于月份和年份)
您只需额外检查年份
尝试此代码(我使用了短路运算符&&
,因此如果解析成功,请检查年份):
DateTime dt;
CultureInfo culture=CultureInfo.CreateSpecificCulture(“fr CH”);
DateTimeStyles=DateTimeStyles.None;
if(DateTime.TryParse(“2018年1月28日”,文化、风格、输出日期)
&&dt.Year>=1900&&dt.Year请编辑您的问题并与我们共享您的代码,我们很乐意提供帮助。我想您可以将输入作为字符串接受,然后使用DateTime.TryParseExact()
在将该字符串转换为DateTime
值时指定格式。请注意“限制”您已经定义了不能准确表示日期值。例如,“2018年2月31日”不是有效的日期。不要用日期重新发明轮子,请使用您可用的工具。在这种情况下,从字符串解析日期时间。尝试了任何方法吗?我可以让它询问,但它不会指定…
什么是“it”`?控制台程序?如果不是,请尝试DateTimePickera您是否希望将来会有很多用户?@Flydog57这只是文化匹配OP日期的示例:)
DateTime dt;
CultureInfo culture = CultureInfo.CreateSpecificCulture("fr-CH");
DateTimeStyles styles = DateTimeStyles.None;
if(DateTime.TryParse("28.01.2018", culture, styles, out dt)
&& dt.Year >= 1900 && dt.Year <= 2050) // here you check additionally if year is in correct range
Console.WriteLine("Date successfully parsed!");