我的问题是如何在日期输入中添加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");
}
答案 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");
}
请注意格式。