date problems.......  
Author Message
maya





PostPosted: 2006-12-11 10:34:00 Top

java-programmer, date problems....... hi,

I'm trying to write a little program to send myself email reminders at a
date in the future... I wrote a little interface in which I send the
date, body of e-mail.. etc...

problem is date being set is exactly one month into the future from when
I set it.. if I say, for example, send me e-mail on Dec. 12, when I
print out date I sent in form, it prints Jan 12, 2007... to wit:

process info sent with request:

sDate = getParameter("date");
mDate = Integer.parseInt(sDate);
sMonth = getParameter("month");
month = Integer.parseInt(sMonth);
sYear = getParameter("year");
year = Integer.parseInt(sYear);

set date based on info sent with request:

Calendar calDate = Calendar.getInstance();
out.println("calDate: " + calDate + "<br><br>");
// this prints confusing stuff.. can't make out exactly
// what date this returns...

calDate.set(Calendar.YEAR, year);
out.println("year: " + year + "<br>");
// (prints what I expect..)

calDate.set(Calendar.MONTH, month);
out.println("month: " + month + "<br>");
// (ditto..)

calDate.set(Calendar.DATE, mDate);
out.println("date: " + mDate + "<br><br><br>");
// (ditto..)

java.util.Date sendDate = calDate.getTime();

out.println("date to send email: " + sendDate + "<br><br>") ;
// this prints a diff date from values that print above...
// (one month later than date I set..)

entire code is here.. www.mayacove.com/java/reminderEmail.zip

thank you...



 
Knute Johnson





PostPosted: 2006-12-11 10:39:00 Top

java-programmer >> date problems....... maya wrote:
> hi,
>
> I'm trying to write a little program to send myself email reminders at a
> date in the future... I wrote a little interface in which I send the
> date, body of e-mail.. etc...
>
> problem is date being set is exactly one month into the future from when
> I set it.. if I say, for example, send me e-mail on Dec. 12, when I
> print out date I sent in form, it prints Jan 12, 2007... to wit:
>
> process info sent with request:
>
> sDate = getParameter("date");
> mDate = Integer.parseInt(sDate);
> sMonth = getParameter("month");
> month = Integer.parseInt(sMonth);
> sYear = getParameter("year");
> year = Integer.parseInt(sYear);
>
> set date based on info sent with request:
>
> Calendar calDate = Calendar.getInstance();
> out.println("calDate: " + calDate + "<br><br>");
> // this prints confusing stuff.. can't make out exactly
> // what date this returns...
>
> calDate.set(Calendar.YEAR, year);
> out.println("year: " + year + "<br>");
> // (prints what I expect..)
>
> calDate.set(Calendar.MONTH, month);
> out.println("month: " + month + "<br>");
> // (ditto..)
>
> calDate.set(Calendar.DATE, mDate);
> out.println("date: " + mDate + "<br><br><br>");
> // (ditto..)
>
> java.util.Date sendDate = calDate.getTime();
>
> out.println("date to send email: " + sendDate + "<br><br>") ;
> // this prints a diff date from values that print above...
> // (one month later than date I set..)
>
> entire code is here.. www.mayacove.com/java/reminderEmail.zip
>
> thank you...
>
>
>

Could this be the problem?

MONTH

public static final int MONTH

Field number for get and set indicating the month. This is a
calendar-specific value. The first month of the year in the Gregorian
and Julian calendars is JANUARY which is 0; the last depends on the
number of months in a year.

--

Knute Johnson
email s/nospam/knute/
 
Lew





PostPosted: 2006-12-11 11:28:00 Top

java-programmer >> date problems....... maya wrote:
> hi,
>
> I'm trying to write a little program to send myself email reminders at a
> date in the future... I wrote a little interface in which I send the
> date, body of e-mail.. etc...
>
> problem is date being set is exactly one month into the future from when
> I set it.. if I say, for example, send me e-mail on Dec. 12, when I
> print out date I sent in form, it prints Jan 12, 2007... to wit [sic]:

Have you taken into account that Calendar.JANUARY == 0?

http://java.sun.com/j2se/1.5.0/docs/api/constant-values.html#java.util.Calendar.JANUARY

DECEMBER == 11. (UNDECIMBER == 12, the thirteenth month of the year in
calendars that have one.)

Setting a Calendar MONTH to 12 is really setting it to 0 of the following
year, i.e., January, if you're using GregorianCalendar. (Your Calendar object
apparently is in setLenient(true) state.)

You'd be better off using the Calendar class constants instead of their int
constant equivalents.

Take a gander at the javadocs for the Calendar class:
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Calendar.html

- Lew
 
 
maya





PostPosted: 2006-12-11 11:33:00 Top

java-programmer >> date problems.......

Knute Johnson wrote:
> maya wrote:
>> hi,
>>
>> I'm trying to write a little program to send myself email reminders at
>> a date in the future... I wrote a little interface in which I send
>> the date, body of e-mail.. etc...
>>
>> problem is date being set is exactly one month into the future from
>> when I set it.. if I say, for example, send me e-mail on Dec. 12, when
>> I print out date I sent in form, it prints Jan 12, 2007... to wit:
>>
>> process info sent with request:
>>
>> sDate = getParameter("date");
>> mDate = Integer.parseInt(sDate);
>> sMonth = getParameter("month");
>> month = Integer.parseInt(sMonth);
>> sYear = getParameter("year");
>> year = Integer.parseInt(sYear);
>>
>> set date based on info sent with request:
>>
>> Calendar calDate = Calendar.getInstance();
>> out.println("calDate: " + calDate + "<br><br>");
>> // this prints confusing stuff.. can't make out exactly
>> // what date this returns...
>>
>> calDate.set(Calendar.YEAR, year);
>> out.println("year: " + year + "<br>");
>> // (prints what I expect..)
>>
>> calDate.set(Calendar.MONTH, month);
>> out.println("month: " + month + "<br>");
>> // (ditto..)
>>
>> calDate.set(Calendar.DATE, mDate);
>> out.println("date: " + mDate + "<br><br><br>");
>> // (ditto..)
>>
>> java.util.Date sendDate = calDate.getTime();
>>
>> out.println("date to send email: " + sendDate + "<br><br>") ;
>> // this prints a diff date from values that print above...
>> // (one month later than date I set..)
>>
>> entire code is here.. www.mayacove.com/java/reminderEmail.zip
>>
>> thank you...
>>
>>
>>
>
> Could this be the problem?
>
> MONTH
>
> public static final int MONTH
>
> Field number for get and set indicating the month. This is a
> calendar-specific value. The first month of the year in the Gregorian
> and Julian calendars is JANUARY which is 0; the last depends on the
> number of months in a year.

oh my gosh -- what a jerk.. I should have KNOWN months of the year
start at 0... ;)
(it wasn't too clear this was the problem b/c ENTIRE date looked off if
I ran it on my website (clock is off at my webhosting, it prints
different date/time (& diff time zone) from what prints on my localhost...)

many thanks..



 
 
Knute Johnson





PostPosted: 2006-12-11 12:38:00 Top

java-programmer >> date problems....... maya wrote:
>
>
> Knute Johnson wrote:
>> maya wrote:
>>> hi,
>>>
>>> I'm trying to write a little program to send myself email reminders
>>> at a date in the future... I wrote a little interface in which I
>>> send the date, body of e-mail.. etc...
>>>
>>> problem is date being set is exactly one month into the future from
>>> when I set it.. if I say, for example, send me e-mail on Dec. 12,
>>> when I print out date I sent in form, it prints Jan 12, 2007... to wit:
>>>
>>> process info sent with request:
>>>
>>> sDate = getParameter("date");
>>> mDate = Integer.parseInt(sDate);
>>> sMonth = getParameter("month");
>>> month = Integer.parseInt(sMonth);
>>> sYear = getParameter("year");
>>> year = Integer.parseInt(sYear);
>>>
>>> set date based on info sent with request:
>>>
>>> Calendar calDate = Calendar.getInstance();
>>> out.println("calDate: " + calDate + "<br><br>");
>>> // this prints confusing stuff.. can't make out exactly
>>> // what date this returns...
>>>
>>> calDate.set(Calendar.YEAR, year);
>>> out.println("year: " + year + "<br>");
>>> // (prints what I expect..)
>>>
>>> calDate.set(Calendar.MONTH, month);
>>> out.println("month: " + month + "<br>");
>>> // (ditto..)
>>>
>>> calDate.set(Calendar.DATE, mDate);
>>> out.println("date: " + mDate + "<br><br><br>");
>>> // (ditto..)
>>>
>>> java.util.Date sendDate = calDate.getTime();
>>>
>>> out.println("date to send email: " + sendDate + "<br><br>") ;
>>> // this prints a diff date from values that print above...
>>> // (one month later than date I set..)
>>>
>>> entire code is here.. www.mayacove.com/java/reminderEmail.zip
>>>
>>> thank you...
>>>
>>>
>>>
>>
>> Could this be the problem?
>>
>> MONTH
>>
>> public static final int MONTH
>>
>> Field number for get and set indicating the month. This is a
>> calendar-specific value. The first month of the year in the Gregorian
>> and Julian calendars is JANUARY which is 0; the last depends on the
>> number of months in a year.
>
> oh my gosh -- what a jerk.. I should have KNOWN months of the year
> start at 0... ;)
> (it wasn't too clear this was the problem b/c ENTIRE date looked off if
> I ran it on my website (clock is off at my webhosting, it prints
> different date/time (& diff time zone) from what prints on my localhost...)
>
> many thanks..
>
>
>

no problem :-)

--

Knute Johnson
email s/nospam/knute/