亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我正在嘗試將值傳遞給 dateTime 對象,但是當月份小于 month10 時出現問題

我正在嘗試將值傳遞給 dateTime 對象,但是當月份小于 month10 時出現問題

C#
翻過高山走不出你 2022-12-04 13:17:07
我正在嘗試將日期、月份和年份傳遞給數據時間對象,但是當值小于第 10 個月時要打印的月份有問題。在我的代碼中,我有一個初始日期和算術,我計算了清潔月和通知月。如果該月的最后一天是 30 或 31 以及第 2 個月的特定情況,我也會做必須發生的事情。這是我的代碼:    int day = (int)DateTime.Now.Day;    int month = (int)DateTime.Now.Month;    int year = (int)DateTime.Now.Year;    int diaLimpeza, mesLimpeza, anoLimpeza;    int diaNotifica, mesNotifica, anoNotifica;  public void mes6()    {        DateTime dataInicial = new DateTime();        DateTime dataLimpeza = new DateTime();        DateTime dataNotifica = new DateTime();        day = 31;        month = 12;        year = 2019;        mesLimpeza=  month + 6;        if (mesLimpeza > 12)        {            mesLimpeza = mesLimpeza - 12;            anoLimpeza = year + 1;            diaLimpeza = day;        }        else        {            mesLimpeza = month + 6;            anoLimpeza = year;            diaLimpeza = day;        }        int soma = diaLimpeza + 2;        diaNotifica = soma;        if (mesLimpeza == 01 || mesLimpeza == 03 || mesLimpeza == 05 || mesLimpeza == 07 || mesLimpeza == 08 || mesLimpeza == 10) //mesLimpeza == 12 excep?ao        {            if (diaLimpeza == 30 || diaLimpeza == 31)            {                diaNotifica = diaNotifica - 31;                mesNotifica = mesLimpeza + 1;                anoNotifica = anoLimpeza;                //int a = diaNotifica;            }            else if ((diaLimpeza == 30 || diaLimpeza == 31) && mesLimpeza == 12)            {                diaNotifica = diaNotifica - 31;                mesNotifica = (mesLimpeza + 1) - 12;                anoNotifica = anoLimpeza + 1;            }            else            {                diaNotifica = diaLimpeza + 2;                mesNotifica = mesLimpeza;                anoNotifica = anoLimpeza;            }        }在最后一行,我試圖在文本框中顯示日期格式,如 (yyyy-MM-dd)。我模擬了一個初始日、月和年,當月的結果等于或大于 10 時,一切都很好。當值較小時,圖像上出現此錯誤:我的錯誤我注意到月份格式不接受小于 10 且沒有零的數字,例如月份“6”,我必須輸入“06”以使其格式正確。我怎么解決這個問題?我在 visual studio 中使用 C#。
查看完整描述

3 回答

?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

你似乎在以艱難的方式做事:

textBoxData.Text = (new DateTime(year, month, day).AddMonths(6).AddDays(2)).ToShortDateString();

應該做的伎倆。

讓對象為您計算日期。


查看完整回答
反對 回復 2022-12-04
?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

您的最終日期無效,您正在創建一個日期,月份 = 6(6 月),日期 = 31。但是 6 月沒有第 31 天。我添加了一行代碼

if (diaLimpeza > 30) diaLimpeza--;

else if (mesLimpeza == 04 || mesLimpeza == 06 || mesLimpeza == 09 || mesLimpeza == 11)減去一天后。

http://img1.sycdn.imooc.com//638c2d980001e7b906550655.jpg

查看完整回答
反對 回復 2022-12-04
?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

使用此代碼,當用戶在組合框中選擇 6 個月時,我會計算開始日期、清理日期和通知日期。我也看看這一年是否是閏年。小心02月的考試。如果不是閏年并且你用第 29 天進行測試,你會得到一個錯誤,因為第 29 天在二月不存在,而當年是閏年。


    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();

        }

    }



查看完整回答
反對 回復 2022-12-04
  • 3 回答
  • 0 關注
  • 165 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號