1

我的问题是如何将 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");
}
4

3 回答 3

8

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

DateTime dt = DateTime.ParseExact(inputString, "yyyyMMdd", CultureInfo.InvariantCulture);
dt = dt.AddMonths(6);
于 2013-07-03T00:24:45.147 回答
4
            string inputString = textBox1.Text;
            DateTime dt = DateTime.ParseExact(inputString, "yyyyMMdd", CultureInfo.InvariantCulture);
            dt = dt.AddMonths(6);
            textBox2.Text = dt.ToString("yyyymmdd");

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

于 2013-07-03T00:21:27.260 回答
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");
}

请注意格式。

于 2014-12-24T09:59:21.910 回答