From: ruds on
hi,
I want to get the last day of previous month.
i have tried using GregorianCalendar;
Calendar cal = new GregorianCalendar(year1, lastmonth, 1);

// Get the number of days in that month
cal.set(Calendar.MONTH, lastmonth);
//cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH)-1);
int days = cal.getActualMaximum(cal.DAY_OF_MONTH);
System.out.println("max = "+days);
String
lastdate=String.valueOf(cal.getActualMaximum(cal.DAY_OF_MONTH));
but still I get the lastdate for current month (31) and not for last
month(30).
Please tell me what to do?
From: Jens Seiler on
ruds wrote:
> hi,
> I want to get the last day of previous month.
> [...]
> Please tell me what to do?

Set your calendar instance to the first day of the *current* month and
substract one day?

Greetings,

Jens Seiler

--
man mailt sich
mailto:mail(a)jens-seiler.de - ICQ# 24778881
http://www.jens-seiler.de
From: shakah on
On Jul 12, 2:37 am, ruds <rudra...(a)gmail.com> wrote:
> hi,
> I want to get the last day of previous month.
> i have tried using GregorianCalendar;
> Calendar cal = new GregorianCalendar(year1, lastmonth, 1);
>
> // Get the number of days in that month
> cal.set(Calendar.MONTH, lastmonth);
> //cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH)-1);
> int days = cal.getActualMaximum(cal.DAY_OF_MONTH);
> System.out.println("max = "+days);
> String
> lastdate=String.valueOf(cal.getActualMaximum(cal.DAY_OF_MONTH));
> but still I get the lastdate for current month (31) and not for last
> month(30).
> Please tell me what to do?

Take a look at the "add(...)" method in java.util.Calendar, it might
be what your're looking for:
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html

For example:
jim(a)sarah:/tmp$ cat lastday.java
public class lastday {
static public void main(String [] args) {
java.util.Calendar c = java.util.Calendar.getInstance() ;
c.set(java.util.Calendar.DAY_OF_MONTH, 1) ;
c.add(java.util.Calendar.DAY_OF_MONTH, -1) ;

System.out.println(java.text.DateFormat.getDateInstance().format(c.getTime())) ;
}
}

jim(a)sarah:/tmp$ /usr/bin/jdk1.5.0_09/bin/javac lastday.java

jim(a)sarah:/tmp$ /usr/bin/jdk1.5.0_09/bin/java lastday
Jun 30, 2008
From: ruds on
> Take a look at the "add(...)" method in java.util.Calendar, it might
> be what your're looking for:
>  http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html
>
> For example:
> jim(a)sarah:/tmp$ cat lastday.java
> public class lastday {
>   static public void main(String [] args) {
>     java.util.Calendar c = java.util.Calendar.getInstance() ;
>     c.set(java.util.Calendar.DAY_OF_MONTH, 1) ;
>     c.add(java.util.Calendar.DAY_OF_MONTH, -1) ;
>
> System.out.println(java.text.DateFormat.getDateInstance().format(c.getTime(­))) ;
>   }
>
> }
>
> jim(a)sarah:/tmp$ /usr/bin/jdk1.5.0_09/bin/javac lastday.java
>
> jim(a)sarah:/tmp$ /usr/bin/jdk1.5.0_09/bin/java lastday
> Jun 30, 2008

this will give me only for 30th of month or 29th if current month has
30 days,
I want to use it every month without making changes to it.

From: ruds on
> Take a look at the "add(...)" method in java.util.Calendar, it might
> be what your're looking for:
>  http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html
>
> For example:
> jim(a)sarah:/tmp$ cat lastday.java
> public class lastday {
>   static public void main(String [] args) {
>     java.util.Calendar c = java.util.Calendar.getInstance() ;
>     c.set(java.util.Calendar.DAY_OF_MONTH, 1) ;
>     c.add(java.util.Calendar.DAY_OF_MONTH, -1) ;
>
> System.out.println(java.text.DateFormat.getDateInstance().format(c.getTime(­))) ;
>   }
>
> }
>
> jim(a)sarah:/tmp$ /usr/bin/jdk1.5.0_09/bin/javac lastday.java
>
> jim(a)sarah:/tmp$ /usr/bin/jdk1.5.0_09/bin/java lastday
> Jun 30, 2008

Its not working for me...
java.util.Calendar c = java.util.Calendar.getInstance() ;
c.set(java.util.Calendar.DAY_OF_MONTH, 1) ;
c.add(java.util.Calendar.DAY_OF_MONTH, -1) ;
int days =Integer.valueOf(c.add(java.util.Calendar.DAY_OF_MONTH, -1));

gives error...
'void' type not allowed here .... for 'c.add....'