C# 如何检查字符串格式

C# 如何检查字符串格式,c#,console-application,C#,Console Application,我正在慢慢地学习用C#编写一些简单的控制台应用程序,现在遇到了一个我无法解决的问题。我曾尝试在堆栈溢出/Internet上搜索解决方案,但要么我不知道如何正确搜索,要么我所搜索的内容没有答案 情况:我正在创建一个简单的控制台应用程序,向用户询问以下信息:姓名、姓氏、年龄 每个提示(问题)都已通过以下代码介绍给用户: System.Console.Write("What is your date of birth? "); String dob = System.Console.ReadLine(

我正在慢慢地学习用C#编写一些简单的控制台应用程序,现在遇到了一个我无法解决的问题。我曾尝试在堆栈溢出/Internet上搜索解决方案,但要么我不知道如何正确搜索,要么我所搜索的内容没有答案

情况:我正在创建一个简单的控制台应用程序,向用户询问以下信息:姓名、姓氏、年龄

每个提示(问题)都已通过以下代码介绍给用户:

System.Console.Write("What is your date of birth? ");
String dob = System.Console.ReadLine();
我为这些名字做了一个简单的检查程序,检查它们是否在1-30个字符之间,如果在1-30个字符之间,应用程序会将结果写入文本文档


问题:我如何检查出生日期是否以以下格式书写:DD.MM.YYYY

TryParseExact
是您的方式:

DateTime dt = new DateTime();
bool success = DateTime.TryParseExact(dob, "dd.MM.yyyy", CultureInfo.CurrentCulture, 
                                        DateTimeStyles.AssumeLocal, out dt);

如果dob格式正确,
isInCorrectFormat
将为
true
dt
将保存正确解析的
DateTime
对象。

如果是有效日期或非有效日期,将返回:

String dob = System.Console.ReadLine();
DateTime dtResult;
bool IsValid = DateTime.TryParseExact(dob, "dd.MM.yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out dtResult);

但在1月1日等情况下,您无法检测到月/日掉期。如果
day>12

DateTime.TryParseExact
,这只会导致false?你能给我举一个字符串用法的例子吗?说到C#,我是个新手。提前谢谢!相关人员:您是否阅读了该方法的文档并尝试了什么?文档中已经包含了示例。能够进行自己的研究,而不是依赖其他人给你提供精确的例子,这一点很重要。请注意,你无法验证1970年12月10日生日的用户是否真的意味着1970年12月10日。而不是12.10。你不应该从中作出回答。@UweKeim,在这个世界上没有这样的规则stackoverflow@M.kazemAkhgary这不是人们所说的“尊重”和/或“常识”吗?@UweKeim我想说的是,你不应该在评论中回答这正是我想要的!非常感谢!:)谢谢你提出这类检查的问题,我甚至没有意识到。稍后将尝试其他解决方法。