La classe Calendar de Java s’avère bien utilie pour pouvoir manipuler des dates.
La classe Calendar de Java s’avère bien utilie pour pouvoir manipuler des dates.
Ainsi, par exemple si vous souhaitez créer une liste de semaine vous pouvez vous y prendre de la sorte :
// Avec en paramètre le Nombre de semaine à afficher avant et après public List getListSemaine(Calendar pCalendar, int pNombreSemaineAvant, int pNombreSemaineApres) { // Calcul d’une liste de semaines List lListeSemaine = new ArrayList(1 + pNombreSemaineAvant + pNombreSemaineApres); SemaineDTO lSemaineDTO = null; // Récupération des semaines avant if (pNombreSemaineAvant > 0) { pCalendar.add(Calendar.WEEK_OF_YEAR, (0 – pNombreSemaineAvant)); lSemaineDTO = this.getSemaineByDate(pCalendar, pLocale, pContextDTO); lListeSemaine.add(lSemaineDTO); for (int i = 0; i < (pNombreSemaineAvant – 1); i++) { // On monte d’une semaine pCalendar.add(Calendar.WEEK_OF_YEAR, 1); lSemaineDTO = getSemaineByDate(pCalendar, pLocale, pContextDTO); lListeSemaine.add(lSemaineDTO); } } // Semaine en cours pCalendar.add(Calendar.WEEK_OF_YEAR, 1); lSemaineDTO = getSemaineByDate(pCalendar, pLocale, pContextDTO); lListeSemaine.add(lSemaineDTO); // Récupération des semaines après for (int i = 0; i < pNombreSemaineApres; i++) { // On monte d’une semaine pCalendar.add(Calendar.WEEK_OF_YEAR, 1); lSemaineDTO = getSemaineByDate(pCalendar, pLocale, pContextDTO); lListeSemaine.add(lSemaineDTO); } }
J’ai pour ma part ensuite créer un objet DTO permettant de stocker chaque semaine. Cet objet est alimenté par la fonction suivante :
public SemaineDTO getSemaineByDate(Calendar pCalendar) { SemaineDTO lSemaineDTO = new SemaineDTO(); lSemaineDTO.setAnnee(pCalendar.get(Calendar.YEAR)); lSemaineDTO.setMois(pCalendar.get(Calendar.MONTH)); lSemaineDTO.setNumeroSemaine(pCalendar.get(Calendar.WEEK_OF_YEAR));
// Obtention du premier jour de la semaine pCalendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); lSemaineDTO.setDateDebut(pCalendar.getTime());
// Obtention du dernier jour de la semaine pCalendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); lSemaineDTO.setDateFin(pCalendar.getTime()); return lSemaineDTO; }
Cet object SemaineDTO contient les propriétés suivantes :
private int mNumeroSemaine; private int mMois; private int mAnnee; private Date mDateDebut; private Date mDateFin;
Ce qui permet ensuite de créer facilement une liste de semaine ayant la forme suivante :
Il est alors simple de créer une fonction pour gérer les boutons précédent et suivant en indiquant + ou – une semaine :
Soit moveSemaineFilter(-1) pour passer à une semaine précédente et moveSemaineFilter(-1) pour une semaine suivante.
Voici le code de cette fonction :
public void moveSemaineFilter(Long NbSemaine) { // Récupération des paramètres int lNombreSemaineAvant = 3; int lNombreSemaineApres = 3; // Récupération de la date en cours Calendar lCalendar = Calendar.getInstance(); Calendar lCalendar2 = Calendar.getInstance(); lCalendar.setTime(mRdvFilter.getSemaine().getDateDebut()); // La date en cours doit être modifiée lCalendar.add(Calendar.WEEK_OF_YEAR, NbSemaine.intValue()); lCalendar2.setTime(lCalendar.getTime());
// Rechargement de la liste des semaines mListeSemaine.getListSemaine(lCalendar, lNombreSemaineAvant, lNombreSemaineApres); // Modification de la semaine par défaut mFilter.setSemaine(getSemaineByDate(lCalendar2)); }
Comment rendre une application web accessible ? Quels tests faut-il faire ? Zoom sur les outils dans cet article !
Est-ce que le futur développeur sera prompt engineer ? Le métier de développeur a toujours évolué avec ses outils. De la simple chaise et du clavier à l'émergence des IDE, chaque génération d'outillage a redéfini la façon de coder. Aujourd'hui, c'est l'IA qui s'invite dans l'équation, et elle ne se contente pas d'ajouter un outil de plus dans la boîte. Ce qui change vraiment, c'est la manière d'interagir avec son code.
Comment mettre en place l’accessibilité mobile sur IOS et Android pour les personnes en situation de handicap ?