Source code: com/hoobsoft/portal/Calendar.java
1 package com.hoobsoft.portal;
2 import java.util.*;
3 import java.text.DateFormat;
4 import org.w3c.dom.Element;
5 import org.w3c.dom.Document;
6
7
8 /**
9 * Simple class for creating an HTML calendar
10 *
11 */
12
13 public class Calendar{
14 private int imonth;
15 private int iday;
16 private int iyear;
17 private String arr[]=new String[7];
18 private String months[]=new String[12];
19
20 public int getMonth(){
21 return imonth;
22 }
23
24 public int getDay(){
25 return iday;
26 }
27
28 public int getYear(){
29 return iyear;
30 }
31
32 public Calendar() {
33 arr[0] = "S";
34 arr[1] = "M";
35 arr[2] = "T";
36 arr[3] = "W";
37 arr[4] = "T";
38 arr[5] = "F";
39 arr[6] = "S";
40
41 months[0] = "Jan";
42 months[1] = "Feb";
43 months[2] = "Mar";
44 months[3] = "Apr";
45 months[4] = "May";
46 months[5] = "Jun";
47 months[6] = "Jul";
48 months[7] = "Aug";
49 months[8] = "Sept";
50 months[9] = "Oct";
51 months[10] = "Nov";
52 months[11] = "Dec";
53 }
54
55
56
57 public String createCalendarHTML(int Year, int Month, int Day){
58 Month--;
59 imonth=Month;
60 iday = Day;
61 iyear = Year;
62
63 if (imonth>11){
64 imonth=0;
65 iyear++;
66 }
67 if (imonth<0){
68 imonth=11;
69 iyear--;
70 }
71
72 String strheader = getHeader();
73
74 int col = 7;
75 int row=6;
76 String strrow = "<tr>";
77 String strtd="<td></td>";
78 String strjusttd="<td class='calendar'>";
79 String strcltd = "</td>";
80 String strclosetr ="</tr>";
81 String str1=new String("");
82 String strdayes= new String("");
83 String strtable="<table width=\"100%\" border=\"1\" class=\"calendarTable\">";
84 String strtableclosed="</table>";
85 StringBuffer sb = new StringBuffer();
86
87 java.util.Calendar c = java.util.Calendar.getInstance();
88
89 sb.append(strheader);
90 GregorianCalendar gc = new GregorianCalendar(Year, Month, 1); //Feb 1, 2000
91 int firstday = gc.get(java.util.Calendar.DAY_OF_WEEK)-1;
92 int count = 1;
93 int lastday = gc.getActualMaximum (c.DAY_OF_MONTH);
94 System.out.println(lastday + " to " + String.valueOf(firstday));
95 sb.append(strtable);
96 sb.append(strrow);
97 for(int g=0;g<7;g++){
98 sb.append(strjusttd);
99 sb.append(arr[g]);
100 sb.append(strcltd);
101
102
103 }
104
105 sb.append(strclosetr);
106 for (int i=0;i<6;i++){
107 sb.append(strrow);
108 for (int k=0;k<7;k++){
109 sb.append(strjusttd);
110 boolean print=false;
111 if(count<=lastday ){
112 if(count>1){
113 print=true;
114 }else{
115 if(k==firstday) print=true;
116 }
117 }
118 if(k==firstday && count < 10) print=true;
119 if(print){
120 sb.append("<a href='index.jsp?app=calendar&cal=d&year="+iyear+"&month="+(imonth+1)+"&day="+iday+"'>"+count+"</a>");
121 count++;
122 iday=count;
123 sb.append(strcltd);
124 }else{
125 sb.append(strcltd);
126 }
127 }
128 sb.append(strclosetr);
129
130 }
131 sb.append(strtableclosed);
132 return sb.toString();
133 }
134
135 public String getToday(String sType){
136 String strReturn = new String("");
137 GregorianCalendar gc = new GregorianCalendar(); //Feb 1, 2000
138 strReturn = gc.get(gc.MONTH)+1+"/"+gc.get(gc.DAY_OF_MONTH)+"/"+gc.get(gc.YEAR);
139 return strReturn;
140 }
141
142 public int getFirstOfWeekMonth(int month,int day,int year){
143 GregorianCalendar gc = new GregorianCalendar(year, month, day); //Feb 1, 2000
144 doFirstOfWeek(gc);
145 return gc.get(java.util.Calendar.MONTH);
146 }
147 public int getFirstOfWeekDay(int month,int day,int year){
148 GregorianCalendar gc = new GregorianCalendar(year, month, day); //Feb 1, 2000
149 doFirstOfWeek(gc);
150 return gc.get(java.util.Calendar.DATE);
151 }
152 public int getFirstOfWeekYear(int month,int day,int year){
153 GregorianCalendar gc = new GregorianCalendar(year, month, day); //Feb 1, 2000
154 doFirstOfWeek(gc);
155 return gc.get(java.util.Calendar.YEAR);
156 }
157
158 private void doFirstOfWeek(GregorianCalendar gc2){
159 int itoday = gc2.get(java.util.Calendar.DAY_OF_WEEK);
160 gc2.add(java.util.Calendar.DATE,(itoday*-1));
161 }
162
163 private String getHeader(){
164
165 String strheader =" <TABLE WIDTH=100% BORDER=0><TR><td class='calendarTop'><a class='calendarTop' href='index.jsp?app=calendar&year="+iyear+"&month="+(imonth)+"&day="+iday+"'>Prev</a></td><td align='center' class='calendarTop'>" + months[getMonth()] + " " + getYear() + "</TD><td class='calendarTop'><a class='calendarTop' href='index.jsp?app=calendar&year="+iyear+"&month="+(imonth+2)+"&day="+iday+"'>Next</a></TD></TR></TABLE>";
166 return strheader;
167 }
168
169
170
171 public static void main(String []args){
172 com.hoobsoft.portal.Calendar cal = new com.hoobsoft.portal.Calendar();
173 //com.netatwork.portal.Calendar gcal = new GregorianCalendar();
174 //System.out.println(gcal.get(cal.DAY_OF_MONTH));
175
176
177 System.out.println(cal.createCalendarHTML(2002,1,1));
178 //System.out.println(cal.getFirstOfWeekMonth(7,1,2001));
179 //System.out.println(cal.getTest());
180 //System.out.println(cal.getToday("dsdf"));
181
182 }
183
184 }