动态日历

JavaBean实现一个能进行年、月查找的日历程序。

首先,编写JavaBean程序,代码如下:

package ch8_3;
import java.util.*;
public class CalendarBean {
String calendar = null;
int year = 2006, month = 1;

public void setYear(int year)
{
this.year = year;
}
public int getYear()
{
return year;
}
public void setMonth(int month)
{
this.month = month;
}
public int getMonth(){
return month;
}
public String getCalendar()
{
StringBuffer buffer = new StringBuffer();
Calendar 日历 = Calendar.getInstance();
日历.set(year,month - 1,1);
int 星期几 = 日历.get(Calendar.DAY_OF_WEEK) - 1;
int day = 0;
if (month == 1 || month == 3 || month ==5 || month == 7 || month == 8 || month == 10 || month == 12 )
{
day = 31;
}
if (month == 4 || month == 6 || month == 9 || month == 11)
{
day = 30;
}
if (month == 2)
{
if((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))
{
day = 29;
}
else
{
day = 28;
}
}
String a[] = new String [42];
for (int i = 0; i < 星期几; i++)
{
a[i] = "";
}
for (int i = 星期几,n = 1;i < 星期几 + day; i++)
{
a[i] = String.valueOf(n);
n ++;
}
buffer.append("<table border=3>");
buffer.append("<tr>");
String xingqi [] = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
for(int k = 0; k < 7; k++)
{
buffer.append("<td>" +xingqi[k]+ "</td>");
}
buffer.append("</tr>");
for(int k = 0; k < 42; k = k + 7)
{
buffer.append("<tr>");
for(int j = k; j < 7+k; j++)
{
if(a[j] != null)
buffer.append("<td>"+a[j]+"</td>");
System.out.println(a[j]+"   "+j+"   "+k);
}
buffer.append("</tr>");
}
buffer.append("</table>");
calendar = new String(buffer);
return calendar;
}
}


编写jsp程序,代码如下:

<%@ page language="java" import="java.util.*" contentType = "text/html;charset = GB2312" pageEncoding="gb2312"%>
<html>
<title>日历程序</title>
  <body bgcolor = pink>
  <font size = 4>
  <jsp:useBean id="Calendar" class = "ch8_3.CalendarBean" scope = "request"/>
  <form action="" method="post" name="form1">
               选择日历显示     年份:
  <select name = "year">
   <option value = "2001">2001年
   <option value = "2002">2002年
   <option value = "2003">2003年
   <option value = "2004">2004年
   <option value = "2005">2005年
   <option value = "2006" selected>2006年
   <option value = "2007">2007年
  </select>
  月份:
  <select name = "month">
   <option value = "1" selected>1月
   <option value = "2">2月
   <option value = "3">3月
   <option value = "4">4月
   <option value = "5">5月
   <option value = "6">6月
   <option value = "7">7月
   <option value = "8">8月
   <option value = "9">9月
   <option value = "10">10月
   <option value = "11">11月
   <option value = "12">12月
  </select>
 <p>
<input type="submit" value="提交" name="submit">
 </p>
 </form>
 <jsp:setProperty  name = "Calendar" property = "*"/>
 <font color = "red"><jsp:getProperty name = "Calendar" property = "year" /></font>年
 <font color = "red"><jsp:getProperty name = "Calendar" property = "month" /></font>
 月的日历:
 <jsp:getProperty name = "Calendar" property = "calendar" />
 </font>
</body>
</html>


界面效果如下:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现思路: 1. 在页面中创建一个日历控件,使用JavaScript或者jQuery等前端框架来实现。 2. 在MySQL数据库中创建一个日程表,包含日程的日期、时间、标题、内容等字段。 3. 使用PHP或其他后端语言编写一个接口,从数据库中查询日程信息,并将结果以JSON格式返回给前端页面。 4. 在前端页面中调用该接口,获取日程信息,并将其显示在日历中。 5. 当用户在日历中点击某一日期时,前端页面向后端发送请求,获取该日期的日程信息,并在日历下方显示出来。 6. 当用户添加或修改日程时,前端页面向后端发送请求,将数据保存到数据库中。 7. 当用户删除日程时,前端页面向后端发送请求,将数据从数据库中删除。 完整代码: 以下是一个简单的示例代码,仅供参考。 HTML代码: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>动态日历</title> <link rel="stylesheet" href="https://cdn.bootcss.com/fullcalendar/3.9.0/fullcalendar.min.css"> <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdn.bootcss.com/moment.js/2.22.2/moment.min.js"></script> <script src="https://cdn.bootcss.com/fullcalendar/3.9.0/fullcalendar.min.js"></script> </head> <body> <div id="calendar"></div> </body> <script> $(document).ready(function() { $('#calendar').fullCalendar({ header: { left: 'prev,next today', center: 'title', right: 'month,agendaWeek,agendaDay' }, defaultDate: new Date(), navLinks: true, // can click day/week names to navigate views editable: true, eventLimit: true, // allow "more" link when too many events events: 'event.php' }); }); </script> </html> ``` PHP代码(event.php): ```php <?php //连接数据库 $mysqli = new mysqli("localhost", "root", "password", "calendar"); if ($mysqli->connect_errno) { die("连接失败: " . $mysqli->connect_error); } //查询日程 $result = $mysqli->query("SELECT * FROM event"); $events = array(); while ($row = $result->fetch_assoc()) { $event = array(); $event['id'] = $row['id']; $event['title'] = $row['title']; $event['start'] = $row['start']; $event['end'] = $row['end']; $event['allDay'] = $row['allDay']; $events[] = $event; } //返回JSON格式数据 echo json_encode($events); ``` 以上代码仅供参考,实际应用中需要根据具体需求进行修改和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值