2010-07-26 6 views

Répondre

10
Calendar day= new GregorianCalendar(2010, Calendar.JULY, 1); 
int dayOfWeek = day.get(Calendar.DAY_OF_WEEK); // 5=Thursday 
0
public static Date shiftDayOfWeekinMonth(Date input, int monthsToAdd) { 

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

int dayOfWeekInMonth = cal.get(GregorianCalendar.DAY_OF_WEEK_IN_MONTH); 
int month = cal.get(GregorianCalendar.MONTH); 

// month increment 
cal.add(GregorianCalendar.MONTH, monthsToAdd); 
// sets the day of week in month 
cal.set(GregorianCalendar.DAY_OF_WEEK_IN_MONTH, dayOfWeekInMonth); 

//overflow month control 
int currentMonthIndex = (month + monthsToAdd) % 12; 
if (currentMonthIndex != cal.get(GregorianCalendar.MONTH)) { 
    cal.add(GregorianCalendar.DAY_OF_WEEK_IN_MONTH, -1); 
} 

return cal.getTime(); 
} 

en utilisant cette méthode pour obtenir des jours de la semaine en mois pour chaque mois de départ à une date d'entrée.

0

Joda-Time

Utilisation du Joda-Time 2.5 bibliothèque plutôt que les classes java.util.Date et .Calendar notoirement gênants.

Les numéros des jours de la semaine sont définis par la norme ISO 8601. Le lundi est un, le dimanche est sept.

DateTimeZone zone = DateTimeZone.forID("America/Montreal"); 
DateTime firstOfMonth = DateTime.now(zone).withDayOfMonth(1).withTimeAtStartOfDay(); 
int dayOfWeekNumber = firstOfMonth.getDayOfWeek(); 
String dayName = DateTimeFormat.forPattern("EEEE").withLocale(Locale.CANADA_FRENCH).print(firstOfMonth); 
0

utilisation ci-dessous méthode Passing année et le mois en tant que paramètres

private String getFirstWeekOfTheMonth(int year, int month){ 
    String weeks[] = new String[]{"Sunday", "Monday", "Tuesday", "Wednesday", "Thusday", "Friday", "Sunday"}; 
    Calendar calender = Calendar.getInstance(); 
    calender.set(year, month, 1); 
    return weeks[calender.get(Calendar.DAY_OF_WEEK)-1]; 
} 

Exemple: -

String currentWeek = getFirstWeekOfTheMonth(2010, Calendar.JULY); 

ici currentWeek est jeudi

Questions connexes