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)); }
Découvrez la planche #61 !
Le problème rencontré se traduit par une impossibilité de se connecter à une base oracle sous Unix suite à la modification des droits sur le fichier /dev/null.
Laravel et Symfony sont deux frameworks PHP très populaires pour le développement d'applications web. Lorsque l'on envisage une utilisation en mode API, ces frameworks offrent des approches variées dans la gestion des endpoints, controllers, services, répositories et ORM (Object-Relational Mapping). Mais quels sont les différences fondamentales entre Laravel et Symfony sur ces aspects spécifiques ? C'est ce que nous allons découvrir dans cet article !