0
//DaysinLastMonth gives me the Days in April
//DaysinCurrentMonth gives me the Days in May



     public void RunCalender(int startOfCalender, int DaysinLastMonth,int 
                                                                DaysInCurrentMonth)
        {
            int value = 0, startOfCalender1 = 0;
            for (int i = 0; i < 6; i++)
            {
                HtmlTableRow tr = new HtmlTableRow();

                if (value == 0)
                   // StartOfCalender is the point where the Calender starts 
                   //from in the month display
                    startOfCalender1 = startOfCalender;
                else
                    startOfCalender1 = value;


                for (int j = 0; j < 7; j++)
                {
                    HtmlTableCell tc = new HtmlTableCell();
                    tc.BgColor = "#FAAFBE";
                    // tc.ColSpan = 1;
                    //tc.Attributes.Add("class", "rowA");
                    HtmlAnchor a = new HtmlAnchor();
                    a.HRef = "http://localhost:51955/Calender.aspx";

                    a.InnerHtml = startOfCalender1.ToString();

                    startOfCalender1 += 1;
                    if (startOfCalender1 == DaysinLastMonth + 1)
                    {
                        startOfCalender1 = 1;
                    }
                    value = startOfCalender1;
                    // Add the control to the TableCell
                    tc.Controls.Add(a);
                    // Add the TableCell to the TableRow
                    tr.Cells.Add(tc);
                }
                // Add the TableRow to the Table
                tbl.Rows.Add(tr);
            }
        }

问题是当前月份,即 5 月没有显示应有的 31 天。无法思考如何解决这个问题

在此处输入图像描述

4

1 回答 1

3

你的问题是:

if (startOfCalender1 == DaysinLastMonth + 1)

在此示例中,DaysinLastMonth == 四月中的天数 == 30

因此,if上面的语句转换为:

if (startOfCalender1 == 31)
{
       startOfCalender1 = 1;
}

在从 4 月 30 日过渡到 5 月 1 日时,您希望使用该逻辑。

从 5 月 30 日过渡到 5 月 31 日时,您不想使用此逻辑。

于 2013-05-07T12:57:15.280 回答