Ajout de semaine avec Calendar, year, week_of_year / Etrange ...
motylefr
Messages postés2Date d'inscriptionmardi 24 août 2010StatutMembreDernière intervention19 novembre 2010
-
19 nov. 2010 à 12:54
HFanny
Messages postés699Date d'inscriptionmercredi 19 février 2003StatutMembreDernière intervention13 mai 2011
-
19 nov. 2010 à 23:27
Bonjour
J'ai besoin d'ajouter ou de soustraire des semaines sur une date au format année-semaine, par exemple 2010-46 +1 = 2010-47.
Mais chose étrange ,
2004-53 + 1 = 2005-1 ok
Pour les années de 52 semaines, pas de souci.
Est-ce que quelqu'un aurait une explication, ou aurait déjà rencontré un problème similaire avec ce Calendar ?
Merci pour votre aide.
Motyle
import java.util.GregorianCalendar;
public class TestAddWeek {
public static String addToWeek(int nbrweek, int yearIni, int weekIni){
GregorianCalendar gc = new GregorianCalendar();
gc.setFirstDayOfWeek(java.util.Calendar.MONDAY);
gc.setMinimalDaysInFirstWeek(4);
HFanny
Messages postés699Date d'inscriptionmercredi 19 février 2003StatutMembreDernière intervention13 mai 201120 19 nov. 2010 à 23:27
Pour manipuler des dates en java, JodaTime se révèle être très pratique.
Ici la javadocet là un guide.
Par exemple :
private static void addWeek(int year, int week, int weekToAdd) {
MutableDateTime mdt = new MutableDateTime();
DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-ww");
mdt.setYear(year);
mdt.setWeekOfWeekyear(week);
System.out.println(mdt.toString(dtf));
mdt.addWeeks(weekToAdd);
System.out.println(mdt.toString(dtf));
}
L'objet MutableDateTime permet de créer une date et d'y ajouter jours/semaines/mois/années, et il suffit pour l'afficher de spéficier quel format utiliser.