0

私はC#で少し苦労していDateTime.TryParse()ます.

基本的に、文字列を指定して、現在の表示カルチャで年および/または月と日を抽出する必要があります。1 年、1 か月、または 3 つすべてしか得られないこともあります。私が得るものに応じて、私は異なる制御フローを持っています。

DateTimeこれまでのところ、さまざまな文字列を;に解析することができました。それは私の問題ではありません。

私の問題は、実際に解析されたものを知りたいということです (つまり、1 か月または 1 年、またはその両方を取得したか)。

初期化されていないDateTimeデフォルトは01/01/0001であり、すべてを無効な日付に設定することはできません99/99/9999

正規表現を行う必要があるのではないかと考えていましたが、DateTimeクラスは複数のカルチャの解析を提供します。これは、このプロジェクトで非常に重要です。

これを検索してみましたが、おそらく他の誰かが以前にこの問題を抱えていたに違いないため、適切な用語を使用していない可能性があります.

更新: これが私が持っているもののサンプルコードです:

string strIn = Console.ReadLine();
DateTimeStyles enStyles = DateTimeStyles.AllowInnerWhite | DateTimeStyles.AllowLeadingWhite | DateTimeStyles.AllowTrailingWhite | DateTimeStyles.AssumeLocal;
bFound = DateTime.TryParse(strIn, CultureInfo.CreateSpecificCulture("en-US"), enStyles, out cDT);

これで、何かが正常に解析された場合、bFound は true になります。ただし、日付のどの部分が正常に解析されたかを知る必要があります

4

2 に答える 2