3 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
你似乎在以艱難的方式做事:
textBoxData.Text = (new DateTime(year, month, day).AddMonths(6).AddDays(2)).ToShortDateString();
應(yīng)該做的伎倆。
讓對(duì)象為您計(jì)算日期。

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
您的最終日期無效,您正在創(chuàng)建一個(gè)日期,月份 = 6(6 月),日期 = 31。但是 6 月沒有第 31 天。我添加了一行代碼
if (diaLimpeza > 30)
diaLimpeza--;
else if (mesLimpeza == 04 || mesLimpeza == 06 || mesLimpeza == 09 || mesLimpeza == 11)
減去一天后。

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
使用此代碼,當(dāng)用戶在組合框中選擇 6 個(gè)月時(shí),我會(huì)計(jì)算開始日期、清理日期和通知日期。我也看看這一年是否是閏年。小心02月的考試。如果不是閏年并且你用第 29 天進(jìn)行測試,你會(huì)得到一個(gè)錯(cuò)誤,因?yàn)榈?29 天在二月不存在,而當(dāng)年是閏年。
int day = (int)DateTime.Now.Day;
int month = (int)DateTime.Now.Month;
int year = (int)DateTime.Now.Year;
int diaLimpeza, mesLimpeza, anoLimpeza,diaNotifica, mesNotifica, anoNotifica;
public void mes6()
{
DateTime dataInicial = new DateTime();
DateTime dataLimpeza = new DateTime();
DateTime dataNotifica = new DateTime();
day = 28;
month = 02;
year = 2018;
mesLimpeza= month + 6;
if (mesLimpeza > 12)
{
mesLimpeza = mesLimpeza - 12;
anoLimpeza = year + 1;
diaLimpeza = day;
}
else
{
mesLimpeza = month + 6;
anoLimpeza = year;
diaLimpeza = day;
}
if (mesLimpeza == 01 || mesLimpeza == 03 || mesLimpeza == 05 || mesLimpeza == 07 || mesLimpeza == 08 || mesLimpeza == 10 || mesLimpeza == 12) //mesLimpeza == 12 excep?ao
{
if (diaLimpeza == 30 || diaLimpeza == 31)
{
diaNotifica = (diaLimpeza + 2) - 31;
mesNotifica = mesLimpeza + 1;
anoNotifica = anoLimpeza;
}
else if ((diaLimpeza == 30 || diaLimpeza == 31) && mesLimpeza == 12)
{
diaNotifica = (diaLimpeza + 2)-31;
mesNotifica = mesLimpeza + 1;
anoNotifica = anoLimpeza + 1;
}
else
{
diaNotifica = diaLimpeza + 2;
mesNotifica = mesLimpeza;
anoNotifica = anoLimpeza;
}
}
else if (mesLimpeza == 04 || mesLimpeza == 06 || mesLimpeza == 09 || mesLimpeza == 11)
{
if (diaLimpeza > 30)
{
diaLimpeza = 30;
}
if (diaLimpeza == 29 || diaLimpeza == 30)
{
diaNotifica = (diaLimpeza + 2) - 30; //mudei esta linha
mesNotifica = mesLimpeza + 1;
anoNotifica = anoLimpeza;
}
else
{
diaNotifica = diaLimpeza + 2;
mesNotifica = mesLimpeza;
anoNotifica = anoLimpeza;
}
}
else if (mesLimpeza == 02)
{
if (anoLimpeza % 4 == 0)
{
if (diaLimpeza == 30 || diaLimpeza == 31)
{
diaLimpeza = 29;
if (diaLimpeza == 28 || diaLimpeza == 29)
{
diaNotifica = (diaLimpeza + 2) - 29;
mesNotifica = mesLimpeza + 1;
anoNotifica = anoLimpeza;
}
}
}
else
{
if (diaLimpeza >= 28 && diaLimpeza <= 31)
{
diaLimpeza = 28;
if (diaLimpeza == 27 || diaLimpeza == 28)
{
diaNotifica = (diaLimpeza + 2) - 28;
mesNotifica = mesLimpeza + 1;
anoNotifica = anoLimpeza;
}
}
else
{
diaNotifica = diaLimpeza + 2;
mesNotifica = mesLimpeza;
anoNotifica = anoLimpeza;
}
}
}
dataInicial = new DateTime(year, month, day);
dataLimpeza = new DateTime(anoLimpeza,mesLimpeza, diaLimpeza);
dataNotifica = new DateTime(anoNotifica, mesNotifica, diaNotifica);
textBoxData.Text = dataInicial.ToShortDateString() + "\r\n" + dataLimpeza.ToShortDateString() + "\r\n" + dataNotifica.ToShortDateString();
}
private void guardaStock_Click(object sender, EventArgs e)
{
if (comboLimpeza.Text == "6 Meses")
{
mes6();
}
}
- 3 回答
- 0 關(guān)注
- 157 瀏覽
添加回答
舉報(bào)