Calendar in java

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • abhishekbrave
    New Member
    • Dec 2007
    • 79

    Calendar in java

    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 + "";
    }
     
    }
  • r035198x
    MVP
    • Sep 2006
    • 13225

    #2
    Did you write this code?
    Have you worked with Java before?

    Comment

    • abhishekbrave
      New Member
      • Dec 2007
      • 79

      #3
      Originally posted by r035198x
      Did you write this code?
      Have you worked with Java before?

      No i am new to java.. the working of this current code is that when we call this java calss from jsp page it displays dates of the current month.. i want to use it for month and year ented bu user.

      Comment

      • Peterwkc
        New Member
        • Apr 2007
        • 55

        #4
        Please explain your problem clearly.

        Comment

        • abhishekbrave
          New Member
          • Dec 2007
          • 79

          #5
          Originally posted by Peterwkc
          Please explain your problem clearly.
          Currently I have two files 1 is a jaa bean class file poted in the question and the other is jsp file which is calling the java bean class.

          Currently when I execute this code it genrates calendar of current month and year . It takes the current month and year from system.
          But I want to modify tis code in a way so that I can pass values of month and year from a jsp to this java file and then this java file will genrate calendar of that particular year.

          Comment

          Working...