0
          int MM;
          int DD;
          int YYYY;
          switch(MM)
          {
                case 1:
                   DD = 31;
                   break;
                case 2:
                   DD = 28;
                   LDD = 29;
                   break;
                case 3:
                   DD = 31;
                   break;
                case 4:
                   DD = 30;
                   break;
                case 5:
                   DD = 31;
                   break;
                case 6:
                   DD = 30;
                   break;
                case 7:
                   DD = 31;
                   break;
                case 8:
                   DD = 31;
                   break;
                case 9:
                   DD = 30;
                   break;
                case 10:
                   DD = 31;
                   break;
                case 11:
                   days = 30;
                   break;
                case 12:
                   DD = 31;
                   break;
                default:
                   {
                            Console.WriteLine("Invalid option");
                   }
        }
        if(Date == MM/DD/YYYY)
        string Date = Console.ReadLine();

日付を文字列として受け入れ、この形式 mm/dd/yyyy のみを受け入れるコードを作成しようとしています。時間はこの形式 10:00AM でのみ受け入れなければなりません。DateTime を使用して、この形式 10 で時間を取得しています。 00:00、私が望まない時、分、秒の形式。

try catch、例外を使用したくありません。

4

4 に答える 4

5

DateTime.ParseExact を使用し、次のガイドラインに従ってフォーマット文字列を記述します。

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

于 2013-08-03T15:56:15.907 に答える
0

DateTime.TryParseExactをお勧めします。これは、文字列が目的の形式であるかどうかを確認し、そうでない場合は false を返し、そうである場合は true を返し、日付を設定します。

于 2013-08-03T15:59:12.853 に答える
0

DateTime.TryParseExactこのメソッドは無効な日付に対して例外をスローしないため、 を使用する必要があります。

DateTime parsed;
var input = "08/03/2013 08:30AM";
if (DateTime.TryParseExact(input, "MM/dd/yyyy hh:mmtt", CultureInfo.InvariantCulture, DateTimeStyles.None, out parsed))
    Console.WriteLine("ok");
else
    Console.WriteLine("not ok");
于 2013-08-03T16:01:38.903 に答える