x
Solved

# date for months

Posted on 2004-09-20
Medium Priority
283 Views
given a month and year as string(say "September 2004"), i want to return an arraylist from 01.09.2004 till 30.09.2004

Thanks
0
Question by:sangeetha

LVL 37

Expert Comment

ID: 12101174
>> arraylist from 01.09.2004 till 30.09.2004
Do you want an arraylist of Strings or of Dates?
0

LVL 2

Author Comment

ID: 12101194
i think anything is Ok...

request.setAttribute("dates", getDatum("September", "2004"));

................
................

private static ArrayList getDatum(String month, String year) {

ArrayList list = new ArrayList();

// What to do here?

return list;

}
am i right?
0

LVL 37

Expert Comment

ID: 12101224
By heart (so not guaranteed without typos):

List arrayList = new ArrayList();

SimpleDateFormat fmt = SimpleDateFormat("dd MMMM yyyy");
Date d = fmt.parse("1 " + month + " " + year);

Calendar cal = Calendar.getInstance();
cal.setTime(d);

boolean stop = false;

int thisMonth = cal.get(Calendar.MONTH);
while (!stop) {
stop = ( thisMonth!=cal.get(Calendar.MOHTH) )
}

return arrayList;
0

LVL 35

Accepted Solution

TimYates earned 100 total points
ID: 12101237
String str = "September 2004" ;
SimpleDateFormat sdf = new SimpleDateFormat( "MMMMM yyyy" ) ;
SimpleDateFormat sdf2 = new SimpleDateFormat( "dd.MM.yyyy" ) ;
sdf.setLenient( true );
Date month = sdf.parse( str ) ;
Calendar cal = Calendar.getInstance() ;
cal.setTime( month );
int curr = cal.get( Calendar.MONTH ) ;
int next = curr ;
ArrayList al = new ArrayList() ;
while( next == curr )
{
al.add( sdf2.format( cal.getTime() ) ) ;
cal.roll( Calendar.DAY_OF_YEAR, true );
next = cal.get( Calendar.MONTH ) ;
}
for( int i = 0 ; i < al.size() ; i++ )
System.out.println( al.get( i ) ) ;
0

LVL 13

Expert Comment

ID: 12101278
Hi sangeetha,

static final String[] month={"january","february","march","april","may","june",
"july","august","september","october","november","december"};

private static int getMonth(String s)
{
for (int i=0;i<month.length;i++)
if (month[i].equalsIgnoreCase(s)) return i+1;
return -1;
}

private static int lm(int m,int a)
{
m=(m+9)%12;
if (m<11) return 31-((m^(m/5))&1);
else return ( ((a%4)==0)&&( ((a%100)!=0) || ((a%400)==0) ) )?29:28;
}

private static String len2(int n)
{
String t="0"+n;
return t.substring(t.length()-2);
}

private static ArrayList getDatum(String month, String year) {

int m=getMonth(month);
if (m<0) return null; // invalid month name

ArrayList list = new ArrayList();

int len_month=lm(m,year);
for (int d=1;d<=len_month;d++)

return list;

}
0

LVL 13

Expert Comment

ID: 12101284
private static ArrayList getDatum(String month, String year) {

should be:

private static ArrayList getDatum(String month, String s_year) {
int year=Integer.parseInt(s_year);

0

LVL 37

Expert Comment

ID: 12101485
Can you tell me what's wrong with my comment?
0

## Featured Post

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.