La classe Calendar de JavaLangage de développement très populaire ! s’avère bien utilie pour pouvoir manipuler des dates.
La classe Calendar de JavaLangage de développement très populaire ! 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)); }
Avec les frameworks modernes comme React, Vue ou Angular, il est possible de modifier toute l'interface d'un seul coup en changeant une unique variable. Plus besoin de synchroniser manuellement données et DOM ! C'est ce qu'on appelle la **réactivité**. Mais comment ça fonctionne ? Et pourquoi ça a révolutionné notre façon de développer ?
Pourquoi monitorer ces VMs? Comment le faire? Voici un post pour expliquer la création/ gestion des alertes sur VMware vSphere.
Si vous aussi vous avez fait le choix d’AngularJS pour un de vos projets, vous êtes au bon endroit ! AngularJS ne sera bientôt plus qu’un lointain souvenir… et pour cause, Google a fait le choix d’arrêter le framework.