Mega Code Archive

 
Categories / Java / Servlets
 

Web Calendar

/*******************************************************************************  * Copyright (c) 2004 BlueOxygen Technology.  * All rights reserved. This program and the accompanying materials  * are made available under the terms of the BlueOxygen Software License v1.0  * which accompanies this distribution, and is available at  *  * Contributors:  *     BlueOxygen Team - initial API and implementation  *******************************************************************************/ import java.util.*; import java.text.SimpleDateFormat; /**  * Class WebCalendar  */ public class WebCalendar {   // Constants   //*----------------------------------------------------------------------*//      // Member Variables   //*----------------------------------------------------------------------*//      /** */   protected GregorianCalendar m_gc;      /** */   protected SimpleDateFormat m_sdf;      // Public Methods and Accessors   //*----------------------------------------------------------------------*//      /** */   public WebCalendar()   {     m_gc = new GregorianCalendar();     m_sdf = new SimpleDateFormat();   }      /** */   public void setYear (int _iYear) { m_gc.set(Calendar.YEAR,_iYear); }      /** */   public void setMonth (int _iMonth) { m_gc.set(Calendar.MONTH,_iMonth); }      /** */   public String getMonth()   {     m_sdf.applyPattern("MMMM");     return m_sdf.format(m_gc.getTime()).toString();   }      /** */   public GregorianCalendar getCalendar() { return m_gc; }      /** */   public String[]     getDays()   {     String days[] = new String       [m_gc.getMaximum(Calendar.DAY_OF_WEEK) - m_gc.getMinimum(Calendar.DAY_OF_WEEK) + 1];     m_gc.set(Calendar.DAY_OF_WEEK,1);          for (int i=0; i<days.length; i++) {       days[i] = m_sdf.format(m_gc.getTime()).toString();       m_gc.roll(Calendar.DAY_OF_WEEK,true);     }          return days;   }      /** */   public String     renderOneMonth (String _sTableWidth,             String _sCellWidth)             //PrintWriter _out)   {     StringBuffer sb = new StringBuffer();     //out = response.getWriter();          sb.append("<table border='1' width='").append(_sTableWidth).append("'")     .append(" cellspacing='0' cellpadding='0'>")     .append("<tr><td align='center' colspan='7'>").append(getMonth())     .append("</td></tr>")     .append("<tr>");          String days[] = getDays();     for (int i=0; i<days.length; i++) {       sb.append("<td width='").append(_sCellWidth).append("'")       .append(" align='center'>").append(days[i]).append("</td>");     }          sb.append("</tr>");          m_gc.set(Calendar.DAY_OF_MONTH,1);     boolean finish = false;          for (;;) {       sb.append("<tr>");              for (int i=0; i<days.length; i++) {         Date t = m_gc.getTime();         m_sdf.applyPattern("EEEE");                  if (days[i].equals(m_sdf.format(t).toString())) {           m_sdf.applyPattern("d");           sb.append("<td align='center'>")           .append(m_sdf.format(t).toString()).append("</td>");                      if (m_gc.get(Calendar.DAY_OF_MONTH) == m_gc.getActualMaximum(Calendar.DAY_OF_MONTH)) {             finish = true;             break;           }                      m_gc.roll(Calendar.DAY_OF_MONTH,true);         }         else {           sb.append("<td align='center'>&nbsp;</td>");         }       }              sb.append("</tr>");       if (finish) break;     }          sb.append("</table>");          return sb.toString();   }       }