2013-07-03 164 views
1

我的問題是,如何在日期格式爲「yyyymmdd」的textbox1上將日期添加到日期輸入中的6個月。 我嘗試了下面的代碼,但我有不同的答案。 我輸入「20130703」我得到這樣的回答:「20140003」將月份添加到輸入日期

private void button1_Click(object sender, EventArgs e) 
{ 
    string inputString = textBox1.Text; 
    DateTime dt = DateTime.ParseExact(inputString, "yyyymmdd", 
             CultureInfo.InvariantCulture); 
    dt = DateTime.Now.Date.AddMonths(6); 
    textBox2.Text = dt.ToString("yyyymmdd"); 
} 
+0

你已經用當前日期加上6個月覆蓋了輸入日期(並使用錯誤的格式說明符:應該是MM) –

回答

8

您的日期格式錯誤(應該是MM),並且您不需要使用DateTime.Now,因爲它將覆蓋您解析的dt值。

DateTime dt = DateTime.ParseExact(inputString, "yyyyMMdd", CultureInfo.InvariantCulture); 
dt = dt.AddMonths(6); 
+1

+1有關。 'MM'斑點! –

+2

感謝這! =) – QKWS

4
  string inputString = textBox1.Text; 
      DateTime dt = DateTime.ParseExact(inputString, "yyyyMMdd", CultureInfo.InvariantCulture); 
      dt = dt.AddMonths(6); 
      textBox2.Text = dt.ToString("yyyymmdd"); 

如果我理解正確的話,你要到6個月添加到解析日期,而不是6個月到今天的日期?嘗試上面的代碼

+0

嗨!我嘗試過這個。但是如果我輸入「20130703」,我也得到了「20130703」.. – QKWS

+0

是的,像@keyboardP指出的那樣 - 它也與無效格式模式 – TGH

2

如下更改代碼:

private void button1_Click(object sender, EventArgs e) 
{ 
    string inputString = textBox1.Text; 
    DateTime dt = DateTime.ParseExact(inputString, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture); 
    dt = dt.Date.AddMonths(6); 
    textBox2.Text = dt.ToString("yyyyMMdd"); 
} 

請注意格式。