2013-07-03 2 views
1

Мой вопрос: как добавить 6 месяцев в ввод данных в текстовое поле1 с форматом даты «yyyymmdd». Я попробовал это со следующим кодом ниже, но у меня есть другой ответ. входа I «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 месяцев (и с использованием неправильного спецификатора формата: должно быть ММ) –

ответ

8

Ваш формат даты не так (должно быть MM), и вам не нужно использовать DateTime.Now как это перезапись значения dt вы разобраны.

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

+1. «ММ» хорошо замечен! –

+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"); 
} 

Обратите внимание на формат.

Смежные вопросы