日历在Web开发中是一个常见的功能,它可以用于显示日期、安排事件等。以下是一个简单的JSP代码示例,用于生成一个基本的HTML日历:
<%@ page import="java.util.*, java.text.SimpleDateFormat" %>
<%
// 获取当前日期
Calendar cal = Calendar.getInstance();
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1; // 月份从0开始,所以需要加1
int day = cal.get(Calendar.DAY_OF_MONTH);
// 获取该月的第一天是星期几
cal.set(year, month - 1, 1);
int startDay = cal.get(Calendar.DAY_OF_WEEK);
// 获取该月的天数
int maxDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
%>
<!DOCTYPE html>
<html>
<head>
<title>日历</title>
<style>
table {
width: 100%;
border-collapse: collapse;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: center;
}
th {
background-color: #f2f2f2;
}
</style>
</head>
<body>
<h2><%= year %>年<%= month %>月</h2>
<table>
<tr>
<th>日</th>
<th>一</th>
<th>二</th>
<th>三</th>
<th>四</th>
<th>五</th>
<th>六</th>
</tr>
<%
// 输出空白日期直到本月第一天
for (int i = 1; i < startDay; i++) {
out.println("<td></td>");
}
// 输出日期
for (int i = 1; i <= maxDay; i++) {
if ((i + startDay - 1) % 7 == 0) {
out.println("<tr>");
}
out.println("<td>" + i + "</td>");
if ((i + startDay - 1) % 7 == 6) {
out.println("</tr>");
}
}
// 如果最后一行不足7天,补足空白日期
int lastRowDays = (maxDay + startDay - 1) % 7;
if (lastRowDays != 0) {
for (int i = lastRowDays + 1; i <= 7; i++) {
out.println("<td></td>");
}
}
%>
</table>
</body>
</html>
通过以上代码示例和相关解释,你应该能够理解如何在JSP中生成一个基本的日历,并了解其基础概念、优势、类型及应用场景。
领取专属 10元无门槛券
手把手带您无忧上云