在core java 那本書里,在講類之前就將了一個打印一個月份中天天是星期幾的萬年歷程序.最近寫程序的時候終于要用到了.我花費了半天時間終于弄明白了GregorianCalendar類,并且通過網絡抓取Oracle數據的時間,然后顯示在jsp 網頁上. 
運行效果如下:
                                                                                            
首先要在J2se里面寫出萬年歷程序,作為練習:
1)星期日Calendar.SUNDAY =1  星期日為1,那么星期幾就+1為以此類推!
打印月歷的程序:
package moonsoft.j2se.testYueli;
import java.util.*;
 
 
public class TestYueli
{
  public static void main(String [] args)
  {  //建立一個GregorianCalendar 對象
    GregorianCalendar d=new GregorianCalendar();
    //獲得系統默認的日期的月份和日期所在的月第幾天
    int month=d.get(Calendar.MONTH);
    int day=d.get(Calendar.DAY_OF_MONTH);
    //把d設置為當月第一天
    d.set(Calendar.DAY_OF_MONTH, 1);
    //獲得第一天的是一星期的第幾天
int weekday=d.get(Calendar.DAY_OF_WEEK);
 
 
    System.out.PRintln("SUN MON TUE WED THU FRI SAT");
    for(int i=Calendar.SUNDAY; i<weekday; i++)
    System.out.print("   ");
    //System.out.print(monthday);
    do
    {
      int days=d.get(Calendar.DAY_OF_MONTH);
      if(days<10)
      System.out.print(" ");
      System.out.print(days);
      if(days==day)
      System.out.print("*");
      else 
      System.out.print(" ");
      if(weekday==Calendar.SATURDAY)
      System.out.println();
      d.add(Calendar.DAY_OF_MONTH, 1);
      weekday=d.get(Calendar.DAY_OF_WEEK);
    
    }while(d.get(Calendar.MONTH)==month);
     } }
2)注重GregorianCalendar calendar=new(year, month-1,year);
month-1!
                          在Calendar 0代表一月!!!
然后再寫oracle抓取到JSP 頁面的程序:
<%@ page contentType="text/Html;charset=Big5"%><%@ page import="java.util.*"%><%@ page import="java.sql.*"%><%@ page import="javax.sql.*"%><%@ page import="javax.naming.*"%><HTML>  <head>  <meta http-equiv="Content-Type" content="text/HTML; charset=Big5">    <title>社團活動</title>    <style type="text/CSS"><!--.style1 {color: #FFFFFF}-->    </style>  </head>  <%  request.setCharacterEncoding("big5");  String name=(String)session.getAttribute("name");  String queryDate=" select to_char(systimestamp, 'YYYY-MM-DD HH24:MM:SS') from dual ";  int  day=1;  int month=3;  int year=2005;  Connection conn=null;    try{  Context ctx=new InitialContext();  DataSource ds=(DataSource)ctx.lookup("jdbc/asdbCoreDS");  conn=ds.getConnection();  PreparedStatement ps=conn.prepareStatement(queryDate);  ResultSet rs=ps.executeQuery();  while(rs.next()){  String date=rs.getString(1);  year=Integer.parseInt(date.substring(0,4));  month=Integer.parseInt(date.substring(5,7));  day=Integer.parseInt(date.substring(8,10));  out.println(year+"年"+month+"月");  }  }  catch(Exception e1){e1.printStackTrace();}  finally{conn.close();}    %>    <body>  <table width="100%"  border="1" cellspacing="1" cellpadding="1">    <tr bgcolor="#0099FF">      <th scope="col"><span class="style1">SUN</span></th>      <th scope="col"><span class="style1">MON</span></th>      <th scope="col"><span class="style1">TUE</span></th>      <th scope="col"><span class="style1">WED</span></th>      <th scope="col"><span class="style1">THU</span></th>      <th scope="col"><span class="style1">FRI</span></th>      <th scope="col"><span class="style1">SAT</span></th>    </tr> <tr>    <%    GregorianCalendar d=new GregorianCalendar(year, month-1 , day);        int monthDay=d.get(Calendar.DAY_OF_MONTH);    int monthNumber=d.get(Calendar.MONTH);        d.set(Calendar.DAY_OF_MONTH, 1);    int weekDay=d.get(Calendar.DAY_OF_WEEK);    for(int i=Calendar.SUNDAY; i<weekDay; i++)    {%><td height="45"> </td><%}    do{    int monthDays=d.get(Calendar.DAY_OF_MONTH);    %><td height="45"><%=monthDays%></td><%    if(weekDay==Calendar.SATURDAY)     out.println("</tr><tr>");     d.add(Calendar.DAY_OF_MONTH, 1);     weekDay=d.get(Calendar.DAY_OF_WEEK);    }while(d.get(Calendar.MONTH)==monthNumber);    %>    </table>  </body></HTML>
其實假如把握了GregorianCalendar 類,寫這個不是很難,呵呵,下一步要做的是要向日歷里添加活動信息.
每碰到一個沒有寫過的技術問題,都覺得很困難,想放棄,可是我不能!
                         我能做的只是堅持,還有培養自己的愛好,
當你寫過這個程序,就覺得,如此而已啊,哈哈......
自己天天都進步一些,這種感覺,真好!