Manipuler des dates
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectif
Savoir calculer des dates et des durées
Savoir copier des dates
Mise en situation
Savoir lire et écrite des dates est utile, mais il faut aussi pouvoir les manipuler. Chaque type de variable a des opérations qui lui sont propres, il en va de même pour les dates. C'est tout l'intérêt d'utiliser les objets manipulant les dates intégrés à un langage : pouvoir facilement effectuer des opérations, telles que ajouter ou soustraire des dates, les comparer, ou encore calculer des durées entre elles. Nous allons voir ici comment réaliser ces opérations.
Syntaxe : Copier une date
En Python, affecter une date existante à une variable permet de la copier.
En JavaScript, la fonction Date()
peut prendre une date en paramètre pour copier sa valeur.
Exemple :
"""Python."""
import datetime
day = datetime.datetime.now()
dayCopy = day
/** JavaScript: duplique une date */
const day = new Date()
const dayCopy = new Date(day)
Ajouter et soustraire
Il est possible de calculer une date à partir d'une autre, pour y ajouter ou soustraire des jours, des mois, des années, etc. En utilisant les attributs et replace()
en Python, ou les fonctions getters et setters en JavaScript, on peut affecter les nouvelles valeurs calculées aux dates en question.
Exemple :
La date est d'abord copiée. Le nouveau mois est calculé en soustrayant 1 à l'ancien, puis affecté à la date.
"""Python: retire un mois à la date actuelle."""
import datetime
day = datetime.datetime.now()
new_month = day.month-1
# Remplace par le mois soustrait
last_month = day.replace(month=new_month)
print(last_month)
/** JavaScript: retire un mois à la date actuelle */
const day = new Date()
let lastMonth = new Date(day)
const newMonth = lastMonth.getMonth() - 1
// Remplace par le mois soustrait
lastMonth.setMonth(newMonth)
console.log(lastMonth)
Calcul de durée
Pour calculer une durée entre deux dates, en jours, mois, années, etc., on peut par exemple soustraire les valeurs des dates.
Exemple : Nombre d'années entre deux dates
"""Python: affiche le nombre d'années de vie."""
import datetime
birth = datetime.datetime(1930, 8, 1)
death = datetime.datetime(2002, 1, 23)
lifetime = death.year - birth.year # calcule la différence entre les années
if death.month < birth.month: # retire un an si le dernier anniversaire n'est pas atteint
lifetime -= 1
print('Pierre Bourdieu est mort à ', lifetime, ' ans')
/** JavaScript: affiche le nombre d'années de vie */
const birth = new Date(1930, 7, 1)
const death = new Date(2002, 0, 23)
let lifetime = death.getFullYear() - birth.getFullYear() // calcule la différence entre les années
if (death.getMonth() < birth.getMonth()) { // retire un an si le dernier anniversaire n'est pas atteint
lifetime -= 1
}
console.log('Pierre Bourdieu est mort à ' + lifetime + ' ans')
À retenir
Les dates peuvent être manipulées de nombreuses manières, y compris sous leur forme entière, c'est à dire en millisecondes.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.