Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 268
  • Last Modified:

date for months

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
sangeetha
Asked:
sangeetha
1 Solution
 
zzynxSoftware engineerCommented:
>> arraylist from 01.09.2004 till 30.09.2004
Do you want an arraylist of Strings or of Dates?
0
 
sangeethaAuthor Commented:
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
 
zzynxSoftware engineerCommented:
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) {
   arrayList.add( cal.getTime() );
   cal.add(Calendar.DATE, 1);
   stop = ( thisMonth!=cal.get(Calendar.MOHTH) )
}

return arrayList;
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
TimYatesCommented:
   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
 
WebstormCommented:
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++)
               list.add(len2(d)+"."+len2(m)+"."+year);
 
          return list;
         
     }
0
 
WebstormCommented:
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
 
zzynxSoftware engineerCommented:
Can you tell me what's wrong with my comment?
0

Featured Post

Receive 1:1 tech help

Solve your biggest tech problems alongside global tech experts with 1:1 help.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now