calculer les années

Rechercher
Boutique en ligne, solution e-commerce, script PHP et PERL : RAYNETTE

calculer les années

Par giresse  -  7 reponses  -  Le 18/05/2018 16:25  -  Editer  - 

Bonjour, j'ai un problème, je voulais créer une application pour le paiement des frais académiques dans une université. Maintenant, mon souci est de pouvoir enregistrer les années académiques, c.à.d, je ne veux pas les enregistrer de sorte que c'est l'utilisateur qui ajoute par exemple 2018-2019 comme l'année du début. j'aimerai que, une fois l'année académique commence, mon application doit être capable de savoir que l'année a commencé.
exemple:
l'année academique commence le 01/10/2018, donc l'année académique doit être 2018-2019 et dans le système, elle sera considérée comme l'année en cours, elle doit expirer par exemple le 01/11/2019 pour commencer une autre année académique 2019-2020. alors, je ne sais pas comme m'y prendre, j'ai besoin d'aide

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 19/05/2018 23:56  -  Haut de page  - 

Salut Giresse,
à froid comme ça, je créerais une petite table définissant les dates de début et de fin des années académiques avec 4 colonne :
table : t_anneeacademique_aac
colonnes :

  • aac_id INT (PK)
  • aac_debut DATE
  • aac_fin DATE
  • aac_libelle VARCHAR(16)

Et nous aurions ainsi des lignes avec

| 1 | 2018-10-01 | 2019-10-31 | 2018/2018 |

Il devient alors possible de définir l'année académique avec une requête du genre :

SELECT aac_libelle
FROM t_anneeacademique_aac
WHERE aac_debut >= ". $date_a_verifier ."
  AND aac_fin < ". $date_a_verifier .";

Le paramètre « $date_a_verifier » devrait bien entendu être formaté au format yyyy-mm-dd

 
Par giresse  -  Le 20/05/2018 21:24  -  Haut de page  - 

Merci beaucoup Cyrano, je vais l'essayer et voir ce que ça va me donner. Donc, on se limitera seulement au niveau d'une requête ?

 
Par Cyrano  -  Le 20/05/2018 21:29  -  Haut de page  - 

C'est à première vue le plus simple. Sinon, on peut toujours traiter ça en PHP en transformant les dates en timestamp, mais ce serait se compliquer inutilement l'existence.

 
Par giresse  -  Le 20/05/2018 22:13  -  Haut de page  - 

Je comprend. Au niveau de l'enregistrement, donc l'utilisateur aura toujours à entrer ces dates parce qu'elles seront vérifiée dans la requête...

 
Par giresse  -  Le 21/05/2018 01:01  -  Haut de page  - 

Une autre préoccupation, j'aimerai par exemple à la place des chiffres qui représentent les mois, mettre les mois en lettres au lieu de chiffre, bien évidemment dans la table t_anneeacadem_aac les dates début et fin seront dans ce cas du type varchar au lieu encore de date

 
Par Cyrano  -  Le 21/05/2018 09:45  -  Haut de page  - 

Ça par contre, ce serait une très mauvaise idée.

Pour stoker une date dans une base de données, le format DATE est le plus appropriée et surtout le seul qui permette d'appliquer certaines fonctions pour des calculs sur les dates en SQL. Dans l'exemple de requête que j'ai montrée plus tôt, j'utilise < ou > : ça fonctionnera sur type DATE, mais pas sur un VARCHAR.

Il existe également pas mal de fonctions de traitement de dates en PHP pour effectuer toutes sortes de conversion.

On ne peut pas faire ces calculs sur une donnée de type VARCHAR.

Un petit tour dans la documentation MySQL sur les fonctions de Date et dans la documentation de PHP sur les fonctions de Date aussi.

 
Par giresse  -  Le 21/05/2018 15:33  -  Haut de page  - 

merci beaucoup Cyrano

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !