java Date

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
Post Reply
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

java Date

Post by rose » Tue Dec 11, 2007 12:57 pm

Hello!Θέλω δυο μεθόδους
η μία θα επιστρέφει το εύρος των ημερομηνιών(String ή οτι άλλο) του προηγούμενου μήνα και η αλλη της προηγούμενης εβδομάδας.

'Εστω σήμερα 11/12/2007

String str=getPrevMonthRange(); //return 1/11/2007 -- 30/11/2007
String str=getPrevWeekRange(); //return 2/12/200 -- 8/11/2007

'Εχω κάνει κάποια test με GregorianCalendar αλλα δεν έχω βρει άκρη
,αν κάποιος έχει αντιμετωπίσει το θέμα ας απαντήσει.
User avatar
elsupreme
Gbyte level
Gbyte level
Posts: 1573
Joined: Mon Nov 21, 2005 10:16 pm
Academic status: N>4
Gender:

Post by elsupreme » Tue Dec 11, 2007 2:17 pm

Δοκίμασες με την class Date?
Τσέκαρε : http://java.sun.com/j2se/1.3/docs/api/j ... /Date.html
"Must float like lotus on river... and kill old lady!"
User avatar
rose
Gbyte level
Gbyte level
Posts: 1921
Joined: Sun May 20, 2007 8:59 pm
Academic status: 4th year
Gender:

Post by rose » Tue Dec 11, 2007 4:09 pm

ok απλά για να κλείσει το θέμα δίνω κώδικα που φαίνεται να λύνει
το πρόβλημα ;)

Code: Select all

public static void printPrevMonthRange()
{
		
		String DATE_FORMAT="dd-MM-yyyy";
		SimpleDateFormat sdf =  new SimpleDateFormat(DATE_FORMAT);	
		
		GregorianCalendar gc=new GregorianCalendar();
		gc.add(GregorianCalendar.MONTH ,-1);
		
		gc.set(GregorianCalendar.DAY_OF_MONTH,1);
		Date t=gc.getTime();
		
		gc.add(GregorianCalendar.DAY_OF_MONTH,(daysInMonth(gc)-1));
		Date t2=gc.getTime();
		
		String days=sdf.format(t) +" "+ sdf.format(t2);	
		
		System.out.println(days);
	}
	
	public static int daysInMonth(GregorianCalendar c) {
		  int [] daysInMonths = {31,28,31,30,31,30,31,31,30,31,30,31};
		  daysInMonths[1] += c.isLeapYear(c.get(GregorianCalendar.YEAR)) ? 1 : 0;
		  return daysInMonths[c.get(GregorianCalendar.MONTH)];
	}
	public static void printPrevWeekRange()
	{
		String DATE_FORMAT="dd-MM-yyyy";
		
		SimpleDateFormat sdf =  new SimpleDateFormat(DATE_FORMAT);	
		GregorianCalendar gc=new GregorianCalendar();
		
		
		
		System.out.println(
				"ROSE"+gc.get(Calendar.WEEK_OF_MONTH));
		
		gc.add(GregorianCalendar.WEEK_OF_MONTH,-2);
		gc.set(GregorianCalendar.DAY_OF_WEEK,GregorianCalendar.SUNDAY);
		Date t=gc.getTime();
		
		gc.add(GregorianCalendar.DAY_OF_WEEK,7);
		Date t2=gc.getTime();
		
		String days=sdf.format(t) +" "+ sdf.format(t2);	
		System.out.println(days);
	}
Post Reply

Return to “Προγραμματισμός”