不知哪位高手有jsp做的日历控件,可以用来记事用!

来源:互联网 发布:单片机上位机python 编辑:程序博客网 时间:2024/04/30 10:47

不知哪位高手有jsp做的日历控件,可以用来记事用。不同的用户可以记录自己的信息。如果有,请提供源代码,在下多谢! 问题点数:100、回复次数:9Top

1 楼jeanven()回复于 2002-11-29 10:59:07 得分 0

我自己做了一个日历当然是很简单的那种如果你需要可以在这个基础上添加功能。给我发信我发给你jeanven@sohu.comTop

2 楼jeanven()回复于 2002-11-29 11:06:10 得分 20

算了,简单点贴在这算了。  
  ////////////////////week.jsp  
  <%@   page   language="java"   import="java.sql.*"   errorPage=""   %>  
  <jsp:useBean   id="dateTime"   scope="page"   class="com.ATCalendar"   />  
  <html>  
  <head>  
  <title>Calendar</title>  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=iso-8859-2">  
  </head>  
  <%  
  int   Year=dateTime.getYear();  
  int   Month=dateTime.getMonth()+1;  
  int   Day=dateTime.getDay();  
   
  %>  
  <body>  
  <table   width="201"   border="0"   cellpadding="0"   cellspacing="0"   bgcolor="#EEEEEE">  
      <tr>    
          <td   colspan="7"   align="center"><%=Year+   "   "   +   Month%></td>  
      </tr>  
      <tr   bgcolor="#336699">    
          <td   width="25"   align='Center'   ><font   color="#FFFFFF">Sun</font></td>  
          <td   width="25"   align='Center'><font   color="#FFFFFF">Mon</font></td>  
          <td   width="25"   align='Center'><font   color="#FFFFFF">Tue</font></td>  
          <td   width="25"   align='Center'><font   color="#FFFFFF">Wed</font></td>  
          <td   width="25"   align='Center'><font   color="#FFFFFF">Thur</font></td>  
          <td   width="25"   align='Center'><font   color="#FFFFFF">Fri</font></td>  
          <td   width="25"   align='Center'><font   color="#FFFFFF">Sat   </font></td>  
      </tr>  
      <%  
      String   dates[]=dateTime.getCalendar();  
  int   j=1;  
  for(int   i=1;i<dates.length;i++){  
  if(i>7   &&   dates[i]==null){  
  out.println("</tr>");  
  break;  
  }  
  if(j==1){  
  out.println("<tr>");  
  }  
   
  if(dates[i]!=null){  
  if(Integer.parseInt(dates[i])==Day){  
  out.println("<td   width='25'     align='Center'   bgcolor=#FFCC00'>"   +dates[i]+   "</td>");  
  }  
  else{  
  out.println("<td   width='25'   align='Center'>"   +dates[i]+   "</td>");  
  }  
   
  }  
  else{  
  out.println("<td   width='25'   align='Center'>"+"   "+   "</td>");  
  //break;  
  }  
   
  if(j<7){  
  j=j+1;  
  }  
  else{  
  out.println("</tr>");  
  j=1;  
  }  
  }  
    %>  
  </table>  
  </body>  
  </html>  
  ////////////////////////////////////////  
  javabean  
  package   com;  
  import   java.util.*;  
  /**  
    *   <p>Title:   Component   Class</p>  
    *   <p>Description:   For   AT   Project</p>  
    *   <p>Copyright:   Copyright   (c)   2002</p>  
    *   <p>Company:   Criscsoft</p>  
    *   @author   Jeanven  
    *   @version   1.0  
    */  
   
  public   class   ATCalendar   {  
   
      private   int   year=1900;  
      private   int   month=01;  
      private   int   day=1;  
      private   String[]   DateArray=new   String[41];  
      private   Calendar   calendar;  
      private   Date   date;  
      public   String[]   getCalendar(){  
          int   gYear=getYear();  
          int   intMonth=getMonth();  
          int   monthLength=0;  
          int   firstDay=getFirstDayOfMonth(gYear,intMonth);  
          int   j=1;  
          boolean   isLeapYear;  
          if   ((gYear   %   4==0)   &&   (   gYear%100   !=   0   )){  
              isLeapYear=true;  
          }  
          else{  
              isLeapYear=false;  
          }  
          switch   (intMonth){  
              case   0:  
                  monthLength=31;  
                  break;  
              case   1:  
                  if   (isLeapYear){  
                      monthLength=29;  
                  }  
                  else{  
                      monthLength=28;  
                  }  
                  break;  
              case   2:  
                  monthLength=31;  
                  break;  
              case   3:  
                  monthLength=30;  
                  break;  
              case   4:  
                  monthLength=31;  
                  break;  
              case   5:  
                  monthLength=30;  
                  break;  
              case   6:  
                  monthLength=31;  
                  break;  
              case   7:  
                  monthLength=31;  
                  break;  
              case   8:  
                  monthLength=30;  
                  break;  
              case   9:  
                  monthLength=31;  
                  break;  
              case   10:  
                  monthLength=30;  
                  break;  
              case   11:  
                  monthLength=31;  
                  break;  
          }  
          for(int   i=firstDay;i<DateArray.length;i++){  
              if(j<=monthLength){  
                  DateArray[i]=j+"";  
                  j+=1;  
              }  
              else{  
                  break;  
              }  
        }  
   
          return   DateArray;  
   
      }  
      public   int   getYear(){  
   
          year=calendar.get(calendar.YEAR);  
          return   year;  
      }  
      public   int   getMonth(){  
   
          month=calendar.get(calendar.MONTH);  
          return   month;  
      }  
      public   int   getDay(){  
          calendar=GregorianCalendar.getInstance();  
          day=calendar.get(Calendar.DATE);  
          return   day;  
      }  
      private   int   getFirstDayOfMonth(int   mY,int   mM){  
   
          calendar.set(mY,mM,1);  
          int   firstDay=calendar.get(Calendar.DAY_OF_WEEK);  
          return   firstDay;  
      }  
      public   ATCalendar()   {  
   
          calendar=GregorianCalendar.getInstance();  
   
          //getCalendar();  
          //getFirstDayOfMonth();  
        //   getDay();  
      }  
      public   static   void   main(String[]   args){  
      ATCalendar   ct=new   ATCalendar();  
      }*/  
  }Top

3 楼wzg7711(小蛇)回复于 2002-11-29 11:58:42 得分 0

这里有错呀。  
   
   
  Generated   servlet   error:  
  D:/java/tomcat/work/Standalone/localhost/_/week$jsp.java:61:   Class   com.ATCalendar   not   found.  
                                  com.ATCalendar   dateTime   =   null;  
                                        ^  
  Top

4 楼longaway()回复于 2002-11-29 12:34:58 得分 0

学习Top

5 楼roby_tao()回复于 2002-11-29 14:30:01 得分 80

〈HTML〉    
  〈HEAD〉    
  〈TITLE〉万年历记事本〈/TITLE〉    
  〈/HEAD〉    
  〈BODY   BGCOLOR   ="white"〉    
  //设置页面脚本语言是java,导入HtmlCalendarNotePad类,HtmlCalendarNotePad在后面将会讲到  
  〈%@   page   language="java"   import="HtmlCalendarNotePad"   %〉    
  //定义一个JavaBean,取其id为HtmlCal  
  〈jsp:useBean   id="HtmlCal"   scope="session"   class="HtmlCalendarNotePad"   /〉    
  〈%    
  //   设置参数,取所需的月份为3月,因为未设定年份,故默认为本年。  
  HtmlCal.setMonth(3);    
  //设置动作,3月24日时,去天极网,在新窗口打开(也可以以其他的方式打开)  
  HtmlCal.setAction(24,"http://www.yesky.com/","_blank");    
  %〉    
  〈TABLE   WIDTH=300〉    
  〈TR〉〈TD   NOWRAP〉    
  〈%=HtmlCal.getHtml()%〉   //以表格的形式输出一个月的月历  
  〈/TD〉〈/TR〉    
  〈/TABLE〉    
  〈/BODY〉    
  〈/HTML〉    
   
    你将看到如下输出结果    
   
  Mon   Tue   Wed   Thu   Fri   Sat   Sun    
  1   2   3    
  4   5   6   7   8   9   10    
  11   12   13   14   15   16   17    
  18   19   20   21   22   23   24    
  25   26   27   28   29   30   31    
   
    这不就跟日历本上一样了吗,不过它比日历本好在,有预设好的链接可以提醒您到时去某个站点,或行某个javascript函数,这样不又起了一个记事本的作用了吗?当然了,你也可以自己添加一些功能,使它变得更加强大,比如添加一个表单,可以让用户填写日记发送到您的系统的数据库中等等。为了完成这个目的,先让我们来看一看JavaBean程序是如何书写的。  
   
  JavaBean程序分析    
   
  我想把HtmlCalendarNotePad中的主要方法介绍一些,相信会大家有所帮助  
   
  public   void   setYear(int   year)   //设置年份   。默认值为当前的年份    
  public   int   getYear()   //获得年份   。默认值为当前的年份    
  //这是标准Java程序写法,因为Java程序就是一个类所以经常写这种setXXX/getXXX  
  public   void   setMonth(int   month)   //设置月份(1-12),默认值为当前的月    
  public   int   getMonth()   //获得月份(1-12),默认值为当前的月    
  public   void   setStyle(int   style)  
  public   int   getStyle()    
  //设置/获得日历的样式(style)  
  //是以星期天为一星期的第一天HtmlCalendarNotePad.SUNDAY_FIRST还是以星期一为一星期的第一天   HtmlCalendarNotePad.MONDAY_FIRST    
   
  //   默认值为HtmlCalendarNotePad.SUNDAY_FIRST    
  public   void   setLocale(Locale   loc)   //设置地区代码(Locale),   默认值为Locale.PRC  
  public   Locale   getLocale()   //获得地区代码(Locale),   默认值为Locale.PRC  
   
  public   void   setAction(int   day,   String   actionUrl   ,String   target_frame)    
  //设置超链接,来处理请求。如果出了任何错误的话,该方法会返回一个空的字符串。    
  //   你可以设置一个普通的URL,如“http://www.yesky.com/action.jsp”  
  //   或者一个一个javascript   函数名,   如   “myFunction”  
  //   日期将被作为一个参数传给URL,或者作为一个字符串值传给   javascript.   格式是yyyymmdd.    
  //   target_frame可以为空的字符串。    
  如:    
  如果调用setAction(21,"http://www.yesky.com/","_blank")    
  超链接为:   〈a   href="http://www.yesky.com/?date=20000621"   target=_blank〉21〈/a〉    
   
  public   void   setActions(String   actionUrl,   String   target_frame)    
  //你也可以为一个月的每一天设置超链接  
   
  ★★现在让我和大家一起来分享那颗诱人的豆子(Bean)吧:(HtmlCalendarNotePad.java)。  
  import   java.text.DateFormat;    
  import   java.text.SimpleDateFormat;    
  import   java.util.*;    
   
  public   class   HtmlCalendarNotePad    
  {    
  public   static   final   int   MONDAY_FIRST   =   1;   //设置每星期是以星期一为第一天    
  public   static   final   int   SUNDAY_FIRST   =   2;   //设置每星期是以星期日为第一天    
  private   Hashtable   config;    
  private   static   final   String   Mnth[]   =   {    
   
  "一月",   "二月",   "三月",   "四月",   "五月",   "六月",    
  "七月",   "八月",   "九月",   "十月",   "十一月",   "十二月"    
  };    
   
  private   int   year;    
  private   int   month;    
  private   int   style;    
  private   String   sFont;    
  private   Locale   loc;    
  private   static   String   NEWLINE   =   "/n";    
   
  public   HtmlCalendarNotePad   ()   //构造函数    
   
  {    
   
  sFont   =   null;    
   
  GregorianCalendar   gCalendar   =   new   GregorianCalendar();   //取得当前的日历(格里高里历)    
   
  config   =   new   Hashtable();   //创建新的哈希表储存配置信息    
   
  NEWLINE   =   System.getProperty("line.separator");    
   
  style   =   2;   //设置每星期是以星期日为第一天    
  month   =   gCalendar.get(2);   //取得月份    
   
  year   =   gCalendar.get(1);   //取的年份    
   
  loc   =   Locale.PRC;   //设置国家名,默认为中华人民共和国    
   
  }    
   
  private   String   formatObject(String   s,   Object   obj)    
   
  {    
   
  String   s1   =   "";    
   
  if(obj   !=   null)    
   
  s1   =   String.valueOf(String.valueOf(obj));    
   
  if(s   ==   null)    
   
  return   s1;    
   
  else    
   
  return   s   +   s1   +   "〈/font〉";    
   
  }    
   
  private   int   getDay(Calendar   calendar)   //取得某日在日历中的位置    
   
  {    
   
  if(style   ==   2)    
   
  return   calendar.get(7)   -   1;    
   
  else    
   
  return   (calendar.get(7)   +   5)   %   7;    
   
  }    
   
  public   String   getHtml()    
   
  {    
   
  GregorianCalendar   gCalendar   =   new   GregorianCalendar(year,   month   -   1,   1);    
   
  GregorianCalendar   gCalendar1   =   new   GregorianCalendar(2001,   3,   24);    
   
  SimpleDateFormat   simpledateformat   =   new   SimpleDateFormat("EEE",   loc);    
   
  //设置缩写格式,EEE是星期的缩写,如   Sun,   若EEEE则为Sunday。    
   
  int   i   =   month   -   1;    
   
  int   j   =   0;    
   
  StringBuffer   stringbuffer   =   new   StringBuffer("");   //创建新的字符串缓冲区    
   
  stringbuffer.append("〈table〉〈tr〉/n");   //在stringbuffer上添加〈table〉〈tr〉,为创建表格作准备    
   
  if(style   ==   2)   //见上解释    
   
  {    
   
  stringbuffer.append("〈th   align=right〉"   +   formatObject(sFont,   simpledateformat.format(gCalendar1.getTime()))   +   "〈/th〉/n");    
   
  gCalendar1.add(5,   1);    
   
  for(int   k   =   1;   k   〈   7;   k++)    
   
  {    
   
  stringbuffer.append("〈th   align=right〉"   +   formatObject(sFont,   simpledateformat.format(gCalendar1.getTime()))   +   "〈/th〉/n");    
   
  gCalendar1.add(5,   1);    
   
  }    
   
  }    
   
  else    
   
  {    
   
  gCalendar1.add(5,   1);    
   
  stringbuffer.append("〈th   align=right〉"   +   formatObject(sFont,   simpledateformat.format(gCalendar1.getTime()))   +   "〈/th〉/n");    
   
  for(int   l   =   2;   l   〈   8;   l++)    
   
  {    
   
  gCalendar1.add(5,   1);    
   
  stringbuffer.append("〈th   align=right〉"   +   formatObject(sFont,   simpledateformat.format(gCalendar1.getTime()))   +   "〈/th〉/n");    
   
  }    
   
  }    
   
  stringbuffer.append("〈/tr〉/n");    
   
  int   i1   =   0;    
   
  j   =   0;    
   
  if(getDay(gCalendar)   〉   0)    
   
  {    
   
  stringbuffer.append("〈tr〉");    
   
  for(;   i1   〈   getDay(gCalendar);   i1++)    
   
  {    
   
  stringbuffer.append("〈td   align=right〉");    
   
  if(sFont   !=   null)    
   
  stringbuffer.append(sFont   +   "   〈/font〉");    
   
  else    
   
  stringbuffer.append("   ");    
   
  stringbuffer.append("〈/td〉/n");    
   
  j++;    
   
  }    
   
  }    
   
  下一页Top

6 楼roby_tao()回复于 2002-11-29 14:31:07 得分 0

接上页  
   
  for(;   gCalendar.get(2)   ==   i;   gCalendar.add(5,   1))    
   
  {    
   
  int   j1   =   gCalendar.get(5);    
   
  int   k1   =   (i1   +   j1)   %   7;    
   
  if(k1   ==   1)    
   
  {    
   
  stringbuffer.append("〈tr〉"   +   NEWLINE);    
   
  j   =   0;    
   
  }    
   
  stringbuffer.append("〈td   align=right〉");    
   
  j++;    
   
  if(sFont   !=   null)    
   
  stringbuffer.append(sFont);    
   
  String   s;    
   
  if((s   =   (String)config.get(String.valueOf(j1)))   !=   null)    
   
  {    
   
  stringbuffer.append("〈a   href=/"");    
   
  if(s.toUpperCase().startsWith("HTT")   ||   s.indexOf(".")   〉   0)    
   
  {    
   
  stringbuffer.append(s);    
   
  if(s.indexOf("?")   〈   0)    
   
  stringbuffer.append("?date="   +   stringDate(gCalendar));    
   
  else    
   
  stringbuffer.append("&date="   +   stringDate(gCalendar));    
   
  }    
   
  else    
   
  {    
   
  stringbuffer.append("javascript:"   +   s   +   "('"   +   stringDate(gCalendar)   +   "');");    
   
  }    
   
  stringbuffer.append("/"");    
   
  if((s   =   (String)config.get(j1   +   "target"))   !=   null)    
   
  stringbuffer.append("   target=/""   +   s   +   "/"");    
   
  stringbuffer.append("〉");    
   
  stringbuffer.append(gCalendar.get(5));    
   
  stringbuffer.append("〈/a〉/n");    
   
  }    
   
  else    
   
  {    
   
  stringbuffer.append(String.valueOf(j1));    
   
  }    
   
  if(sFont   !=   null)    
   
  stringbuffer.append("〈/font〉");    
   
  stringbuffer.append("〈/td〉/n");    
   
  if(k1   ==   0)    
   
  stringbuffer.append("〈/tr〉/n");    
   
  }    
   
  if(j   〈   7)    
   
  {    
   
  for(;   j   〈   7;   j++)    
   
  {    
   
  stringbuffer.append("〈td   align=right〉");    
   
  if(sFont   !=   null)    
   
  stringbuffer.append(sFont);    
   
  stringbuffer.append("   ");    
   
  if(sFont   !=   null)    
   
  stringbuffer.append("〈/font〉");    
   
  stringbuffer.append("〈/td〉/n");    
   
  }    
   
  stringbuffer.append("〈/tr〉/n");    
   
  }    
   
  stringbuffer.append("〈/table〉/n");    
   
  return   stringbuffer.toString();    
   
  }    
   
  public   Locale   getLocale()   //获取地区名    
   
  {    
   
  return   loc;    
   
  }    
   
  public   int   getYear()   //取得年份    
   
  {    
   
  return   htmlCalendarYear;    
   
  }    
   
  public   int   getMonth()   //取得月分    
   
  {    
   
  return   htmlCalendarMonth;    
   
  }    
   
  public   int   getStyle()   //取得日历的样式    
   
  {    
   
  return   htmlCalendarStyle;    
   
  }    
   
  //设置动作的URI,target_frame   的值可以为_blank、   _parent、   _top、   _self。    
   
  public   void   setAction(int   day,   String   actionUri,   String   target_frame)    
   
  {    
   
  if(actionUri   !=   null)    
   
  {    
   
  config.put(String.valueOf(day),   actionUri);    
   
  if(target_frame   !=   null   &&   target_frame.length()   〉   0)    
   
  config.put(day   +   "target",   target_frame);    
   
  }    
   
  }    
   
  //设置一个月的所有天的超链接    
   
  public   void   setActions(String   actionUri,   String   target_frame)    
   
  {    
   
  for(int   day   =   1;   day   〈=   31;   day++)    
   
  setAction(day,   actionUri,   target_frame);    
   
  }    
   
  //设置地区    
   
  public   void   setLocale(Locale   locale)    
   
  {    
   
  loc   =   locale;    
   
  }    
   
  //设置年份    
   
  public   void   setYear(int   htmlCalendarYear)    
   
  {    
   
  if(htmlCalendarYear   〉   0)    
   
  {    
   
  year   =   htmlCalendarYear;    
   
  config.clear();    
   
  }    
   
  }    
   
  //设置月份    
   
  public   void   setMonth(int   htmlCalendarMonth)    
   
  {    
   
  if(htmlCalendarMonth   〉=   1   &&   htmlCalendarMonth   〈=   12)    
   
  {    
   
  month   =   htmlCalendarMonth;    
   
  config.clear();    
   
  }    
   
  }    
   
  //设置日历的样式    
   
  public   void   setStyle(int   htmlCalendarStyle)    
   
  {    
   
  style   =   htmlCalendarStyle;    
   
  }    
   
  private   String   stringDate(Calendar   calendar)    
   
  {    
   
  String   strDay   =   String.valueOf(calendar.get(1));    
   
  return   strDay   +   twoDigits(calendar.get(2)   +   1)   +   twoDigits(calendar.get(5));    
   
  }    
   
  private   String   twoDigits(int   day)   //为了日历中数字能够对齐,所以1-9   前将加0    
   
  {    
   
  String   stringDay   =   String.valueOf(day);   //取得day的值    
   
  if(stringDay.length()   ==   1)   //如果字符串长度为1    
   
  return   "0"   +   stringDay;   //则在字符串前加零    
   
  else    
   
  return   stringDay;    
   
  }    
   
  }