在输入日期添加月份

时间:2013-07-03 00:19:12

标签: c# string datetime date-format

我的问题是如何在日期输入中添加6个月的日期格式为“yyyymmdd”的textbox1。  我尝试使用下面的代码,但我有一个不同的答案。 我输入“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");
}

3 个答案:

答案 0 :(得分:8)

您的日期格式错误(应为MM)并且您不需要使用DateTime.Now,因为它会覆盖您解析的dt值。

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

答案 1 :(得分:4)

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

如果我理解正确,您希望在解析日期增加6个月,而不是在今天的6个月之后添加?试试上面的代码

答案 2 :(得分: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");
}

请注意格式。