Below is the java code for getting a calendar for current date. I have to reuse it for the month and year entered by user..* My query is how to pass month and year from user and in which format to the below java code...
Code:
package com.cj.htmlcal;
import java.text.SimpleDateFormat;
import java.util.*;
public class HtmlCalendar
{
private static String NEWLINE = "\n";
public static final int MONDAY_FIRST = 1;
public static final int SUNDAY_FIRST = 2;
private Hashtable cnf;
private static final String Mnth[] = {
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct",
"Nov", "Dec"
};
private int year;
private int month;
private int style;
private String sFont;
private Locale loc;
public HtmlCalendar()
{
sFont = null;
GregorianCalendar gregoriancalendar = new GregorianCalendar();
cnf = new Hashtable();
NEWLINE = System.getProperty("line.separator");
style = 2;
month = gregoriancalendar.get(2) + 1;
year = gregoriancalendar.get(1);
loc = Locale.US;
}
public void setLocale(Locale locale)
{
loc = locale;
}
public Locale getLocale()
{
return loc;
}
public void setYear(int i)
{
if(i > 0)
{
year = i;
cnf.clear();
}
}
public int getYear()
{
return year;
}
public void setMonth(int i)
{
if(i >= 1 && i <= 12)
{
month = i;
cnf.clear();
}
}
public int getMonth()
{
return month;
}
public void setStyle(int i)
{
style = i;
}
public int getStyle()
{
return style;
}
private int getDay(Calendar calendar)
{
if(style == 2)
return calendar.get(7) - 1;
else
return (calendar.get(7) + 5) % 7;
}
public void setActions(String s, String s1)
{
for(int i = 1; i <= 31; i++)
setAction(i, s, s1);
}
public void setAction(int i, String s, String s1)
{
if(s != null)
{
cnf.put("" + i, s);
if(s1 != null && s1.length() > 0)
cnf.put(i + "target", s1);
}
}
public String getHtml()
{
GregorianCalendar gregoriancalendar = new GregorianCalendar(year, month - 1, 1);
GregorianCalendar gregoriancalendar1 = new GregorianCalendar(2001, 0, 14);
SimpleDateFormat simpledateformat = new SimpleDateFormat("EEE", loc);
int i = month - 1;
int j = 0;
StringBuffer stringbuffer = new StringBuffer("");
stringbuffer.append("<table><tr>\n");
if(style == 2)
{
stringbuffer.append("<th align=right>" + formatObject(sFont, simpledateformat.format(gregoriancalendar1.getTime())) + "</th>\n");
gregoriancalendar1.add(5, 1);
for(int k = 1; k < 7; k++)
{
stringbuffer.append("<th align=right>" + formatObject(sFont, simpledateformat.format(gregoriancalendar1.getTime())) + "</th>\n");
gregoriancalendar1.add(5, 1);
}
} else
{
gregoriancalendar1.add(5, 1);
stringbuffer.append("<th align=right>" + formatObject(sFont, simpledateformat.format(gregoriancalendar1.getTime())) + "</th>\n");
for(int l = 2; l < 8; l++)
{
gregoriancalendar1.add(5, 1);
stringbuffer.append("<th align=right>" + formatObject(sFont, simpledateformat.format(gregoriancalendar1.getTime())) + "</th>\n");
}
}
stringbuffer.append("</tr>\n");
int i1 = 0;
j = 0;
if(getDay(gregoriancalendar) > 0)
{
stringbuffer.append("<tr>");
for(; i1 < getDay(gregoriancalendar); i1++)
{
stringbuffer.append("<td align=right>");
if(sFont != null)
stringbuffer.append(sFont + " ");
else
stringbuffer.append(" ");
stringbuffer.append("</td>\n");
j++;
}
}
for(; gregoriancalendar.get(2) == i; gregoriancalendar.add(5, 1))
{
int j1 = gregoriancalendar.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)cnf.get(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(gregoriancalendar));
else
stringbuffer.append("&date=" + stringDate(gregoriancalendar));
}
else
{
stringbuffer.append("javascript:" + s + "('" + stringDate(gregoriancalendar) + "');");
}
stringbuffer.append("\"");
if((s = (String)cnf.get(j1 + "target")) != null)
stringbuffer.append(" target=\"" + s + "\"");
stringbuffer.append(">");
stringbuffer.append(gregoriancalendar.get(5));
stringbuffer.append("</a>\n");
} else
{
stringbuffer.append(j1 + "");
}
if(sFont != null)
stringbuffer.append("");
//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("");
stringbuffer.append("</td>\n");
}
stringbuffer.append("</tr>\n");
}
stringbuffer.append("</table>\n");
return stringbuffer.toString();
}
private String stringDate(Calendar calendar)
{
String s = "" + calendar.get(1);
//return s + twoDigits(calendar.get(2) + 1) + twoDigits(calendar.get(5));
return s + twoDigits(calendar.get(2) + 1);
}
private String twoDigits(int i)
{
String s = "" + i;
if(s.length() == 1)
return "0" + s;
else
return s;
}
private String formatObject(String s, Object obj)
{
String s1 = "";
if(obj != null)
s1 = "" + obj;
if(s == null)
return s1;
else
return s + s1 + "";
}
}
Comment