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)); }
L'intelligence artificielle s'invite de plus en plus dans nos éditeurs de code. Ce qui ressemblait hier à un gadget impressionnant devient peu à peu un outil de productivité incontournable. Mais comme souvent dans la tech, entre engouement et scepticisme, la réalité se situe quelque part au milieu.
Derrière le terme « cloud » se cache bien plus qu’un simple mot à la mode ou un lointain serveur hébergé quelque part sur Internet. Depuis une dizaine d’années, le cloud computing s’est imposé comme LE modèle incontournable pour déployer ces applications. Mais de quoi parle-t-on réellement quand on évoque le cloud ? Pourquoi tout le monde fait-il cette transition ? Quels sont les avantages, mais aussi les limites de ce modèle ?
L'intelligence artificielle s'invite (presque) partout dans le développement logiciel. Des outils comme GitHub Copilot ou ChatGPT nous aident à générer du code plus vite et à gagner en efficacité. Mais soyons honnêtes : si l'IA fait gagner du temps, elle amène aussi son lot de questions de sécurité. C'est d'ailleurs l'un des sujets abordés dans notre dernier dossier tech.