0

短い日付の検証に次のコードを使用しています。

DateTime dt = DateTime.Now;
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fr-FR");
if (DateTime.TryParse(textBox1.Text, out dt))
{ textBox1.Text = dt.ToShortDateString(); }

しかし、小さな問題があります。ユーザーが 1/1/1 と入力すると、出力は 01/01/2001 のようになります。

ユーザーが 1-1-1 と入力すると、出力は 01/01/2001 のようになります。私が与えたフォーマットのため。

ユーザーが1-1-1のように入力した場合、出力は01-01-2001になるはずです。

4

2 に答える 2

2

これを試して:

dt.ToString(@"dd-MM-yyyy");

入力に応じて出力を区別したい場合は、次のことをお勧めします。

if (textbox1.Text.Contains("/"))
{
    textBox1.Text = dt.ToString(@"dd/MM/yyyy");
}
else
{
    textBox1.Text = dt.ToString(@"dd-MM-yyyy");
}
于 2013-03-09T08:19:08.783 に答える
0

このような状態でMaskedTextBoxの代わりにTextBoxを使用している理由がわかりません。これにはMaskedTExtBoxを使用することをお勧めします。2つのMaskedTextBoxをToolBoxからフォームにドラッグアンドドロップし、FormLoadEventでこのコードを使用します

maskedTextBox1.Mask = "##/##/####";
maskedTextBox2.Mask = "##-##-####";
于 2013-03-09T20:28:28.033 に答える