項目中碰到一個需要手動輸入月份,然後頁面輸出當月日曆的功能,開始想用js來做,發現沒辦法做。之後,因為還需要設定每個日期的節假日,想到之前做過萬年曆。剛好用上了,就通過程序算法來控制,無論選擇那個月,都能顯示日曆。代碼如下: string strDate = WebUtils.getParameter("condition"); int nYear = 0; int nMonth = 0; int nWeek = 0; if (!string.IsNullOrEmpty(strDate)) { nYear = DateTime.Parse(strDate).Year; nMonth = DateTime.Parse(strDate).Month; DateTime dtWeek = new DateTime(nYear, nMonth, 1); nWeek = Convert.ToInt32(dtWeek.DayOfWeek); } else { nYear = DateTime.Now.Year; nMonth = DateTime.Now.Month; DateTime dtWeek = new DateTime(nYear, nMonth, 1); nWeek = Convert.ToInt32(dtWeek.DayOfWeek); } BrtRResultModel<object> brtRResultModel = new BrtRResultModel<object>(); StringBuilder sb = new StringBuilder(); //添加日曆 sb.Append("<tr align=\"center\">"); int i = 1; for (int nDay = 1; nDay <= 31; ) { if (i < nWeek) { sb.Append("<td> </td>"); i = i + 1; } else { bool bResult = PageValidate.isDateTime(nYear + "-" + nMonth + "-" + nDay); if (bResult) { sb.Append("<td>" + nDay + "</td>"); } if (i % 7 == 0) { sb.Append("</tr><tr align=\"center\">"); } i = i + 1; nDay = nDay + 1; } } string strResult = sb.ToString(); int nLastTrLength = strResult.LastIndexOf("<tr align=\"center\">"); strResult = StringUtils.subString(strResult,nLastTrLength); 效果如圖:
输出当月的日历
最新推荐文章于 2021-02-13 04:37:30 发布