get months from calendar or Date

What is best way to get previous 12 months in java and dispaly as below.Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr May
[147 byte] By [raghuveer_vellankia] at [2007-10-2 21:19:55]
# 1

Dont know about best way but...this is one

String [] s = {"Jan", "Feb", "Mar", "Apr", "May","Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};

int cnt = 5;

for (int i = 0; i < s.length; i++) {

System.out.print(s[cnt]+" ");

cnt++;

if (cnt==12) cnt=0;

}

rollo32a at 2007-7-14 0:29:19 > top of Java-index,Java Essentials,Java Programming...
# 2
What if i want year also2005-Jun 2005-Jul 2005-Aug 2005-Sep 2005-Oct 2005-Nov 2005-Dec 2006-Jan 2006-Feb 2006-Mar 2006-Apr 2006-May
raghuveer_vellankia at 2007-7-14 0:29:19 > top of Java-index,Java Essentials,Java Programming...
# 3

Not bad, but I would do something like this:

String [] s = {"Jan", "Feb", "Mar", "Apr",

"May","Jun", "Jul", "Aug", "Sep", "Oct", "Nov",

"Dec"};

int cnt = 0;

for (int i = date.getMonth(); count < 12; i++) {

System.out.print(s[i]+" ");

cnt++;

if (i==11){

i=0;

}

}

EsoralTrebora at 2007-7-14 0:29:19 > top of Java-index,Java Essentials,Java Programming...
# 4

After rereading the question I realized that I made a boo-boo. My original code was not showing the previous months.

String [] s = {"Jan", "Feb", "Mar", "Apr",

"May","Jun", "Jul", "Aug", "Sep", "Oct", "Nov",

"Dec"};

int cnt = 0;

int year = date.getYear();

for (int i = (date.getMonth() - 1); count < 12; i--) {

System.out.print(year + "-" + s[i]+" ");

cnt++;

if (i==0){

i=11;

year -= 1;

}

}

If you look at the Date class you will see that it has all these spiffy methods that tell you a lot.

Hope this helps.

Message was edited by: EsoralTrebor

EsoralTrebor

EsoralTrebora at 2007-7-14 0:29:19 > top of Java-index,Java Essentials,Java Programming...
# 5

I have done like this

Calendar c= Calendar.getInstance();

String [] s = {"Jan", "Feb", "Mar", "Apr", "May","Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};

int cnt = c.get(Calendar.MONTH)+1;

int iYear=c.get(Calendar.YEAR)-1;

for (int i = 0; i < s.length; i++) {

System.out.print(s[cnt]+" - "+iYear);

System.out.print(",");

cnt++;

if (cnt==12){ cnt=0;

iYear++;

}

}

Output:

Jun - 2005,Jul - 2005,Aug - 2005,Sep - 2005,Oct - 2005,Nov - 2005,Dec - 2005,Jan - 2006,Feb - 2006,Mar - 2006,Apr - 2006,May - 2006

Is this correct way ?

raghuveer_vellankia at 2007-7-14 0:29:19 > top of Java-index,Java Essentials,Java Programming...
# 6

I would do something like:

SimpleDateFormat dfMonth = new SimpleDateFormat("MMM '-' yyyy");

Calendar c= Calendar.getInstance();

c.add(Calendar.MONTH, -12); // go 12 month back

for (int i = 0; i < 12; i++) {

System.out.println(dfMonth.format(c.getTime()));

c.add(Calendar.MONTH, 1);

}

Franco

franco_weichela at 2007-7-14 0:29:19 > top of Java-index,Java Essentials,Java Programming...
# 7

> I would do something like:

>

> [code]

> SimpleDateFormat dfMonth = new

> SimpleDateFormat("MMM '-' yyyy");

>Calendar c= Calendar.getInstance();

> c.add(Calendar.MONTH, -12); // go 12 month back

>for (int i = 0; i < 12; i++) {

>

> ystem.out.println(dfMonth.format(c.getTime()));

> c.add(Calendar.MONTH, 1);

> /code]

>

> Franco

Show off!!! ;-)

EsoralTrebora at 2007-7-14 0:29:20 > top of Java-index,Java Essentials,Java Programming...
# 8
You got to love what the Quote Original does to a post. *shakes head*
EsoralTrebora at 2007-7-14 0:29:20 > top of Java-index,Java Essentials,Java Programming...