This repository has been archived on 2019-08-09. You can view files and clone it, but cannot push or open issues or pull requests.
s1-tp/S1/TP 2/Votre age en secondes.py
2014-10-07 19:32:31 +02:00

123 lines
3.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# PREUD'HOMME BONTOUX Geoffrey - PeiP 12 - 2014/2015
# TP n°2 donné le 19/09/2014 - Votre âge en secondes
# http://www.fil.univ-lille1.fr/~wegrzyno/portail/Info/Doc/HTML/tp_donnees_expressions.html
# Q1
ref_an = 1900
ref_mois = 1
ref_jour = 1
# Q2
nbre_sec_jour = 24 * 60 * 60
# Q3
nbre_sec_an = 365.2425 * nbre_sec_jour
# Q4
nbre_sec_mois = nbre_sec_an / 12
# Q5
aujourdhui_jour = 19
aujourdhui_mois = 9
aujourdhui_an = 2014
# Q6
nbre_an_entre_1900_et_aujourdhui = aujourdhui_an - ref_an
nbre_mois_entre_1900_et_aujourdhui = aujourdhui_mois - ref_mois
nbre_jour_entre_1900_et_aujourdhui = aujourdhui_jour - ref_jour
nbre_sec_entre_1900_et_aujourdhui = \
nbre_an_entre_1900_et_aujourdhui * nbre_sec_an \
+ nbre_mois_entre_1900_et_aujourdhui * nbre_sec_mois \
+ nbre_jour_entre_1900_et_aujourdhui * nbre_sec_jour
print("Q6", "Secondes entre la date de référence et aujourdhui :", \
nbre_sec_entre_1900_et_aujourdhui)
# Q7
naissance_jour = 14
naissance_mois = 2
naissance_an = 1997
nbre_an_entre_1900_et_naissance = naissance_an - ref_an
nbre_mois_entre_1900_et_naissance = naissance_mois - ref_mois
nbre_jour_entre_1900_et_naissance = naissance_jour - ref_jour
nbre_sec_entre_1900_et_naissance = \
nbre_an_entre_1900_et_naissance * nbre_sec_an \
+ nbre_mois_entre_1900_et_naissance * nbre_sec_mois \
+ nbre_jour_entre_1900_et_naissance * nbre_sec_jour
# Q8
mon_age_en_secondes = \
nbre_sec_entre_1900_et_aujourdhui - nbre_sec_entre_1900_et_naissance
print("Q8", "Mon âge en secondes :", mon_age_en_secondes)
# Q9
def nbre_sec_depuis_1900(jour, mois, an):
"""
Calcule le nombre approximatif de secondes écoulées entre la date de
référence (le 1er janvier 1900) à 0h00 et la date passée en paramètre
CU : jour entier ; 1 ≤ jour ≤ 31 ; mois entier ; 1 ≤ mois ≤ 12 ;
an entier ; an ≥ 1900 ; la date doit avant aujourd'hui
Exemple :
>>> nbre_sec_depuis_1900(14, 2, 1997)
3064777290.0
"""
nbre_jour_entre_1900_et_date = jour - ref_jour
nbre_mois_entre_1900_et_date = mois - ref_mois
nbre_an_entre_1900_et_date = an - ref_an
nbre_sec_entre_1900_et_date = \
nbre_an_entre_1900_et_date * nbre_sec_an \
+ nbre_mois_entre_1900_et_date * nbre_sec_mois \
+ nbre_jour_entre_1900_et_date * nbre_sec_jour
return nbre_sec_entre_1900_et_date
# Q10
mon_age_en_secondes = \
nbre_sec_depuis_1900(aujourdhui_jour, aujourdhui_mois, aujourdhui_an) \
- nbre_sec_depuis_1900(naissance_jour, naissance_mois, naissance_an)
print("Q10", "Mon âge en secondes (via nbre_sec_depuis_1900) :", \
mon_age_en_secondes)
# Q11
from datetime import *
aujourdhui = date.today()
aujourdhui_jour = aujourdhui.day
aujourdhui_mois = aujourdhui.month
aujourdhui_an = aujourdhui.year
mon_age_en_secondes = \
nbre_sec_depuis_1900(aujourdhui_jour, aujourdhui_mois, aujourdhui_an) \
- nbre_sec_depuis_1900(naissance_jour, naissance_mois, naissance_an)
print("Q11", "Mon âge en secondes (via datetime) :", \
mon_age_en_secondes)
# Q12
def age_en_secondes(jour, mois, an):
"""
Calcule le nombre approximatif de secondes écoulées depuis la date passée
en paramètre.
CU : jour entier ; 1 ≤ jour ≤ 31 ; mois entier ; 1 ≤ mois ≤ 12 ;
an entier ; an ≥ 1900 ; la date doit avant aujourd'hui
Exemple (si nous sommes le 19/09/2014) :
>>> age_en_secondes(14, 2, 1997)
555308406.0
"""
ajd = date.today()
return nbre_sec_depuis_1900(ajd.day, ajd.month, ajd.year) \
- nbre_sec_depuis_1900(jour, mois, an)
mon_age_en_secondes = \
age_en_secondes(naissance_jour, naissance_mois, naissance_an)
print("Q12", "Mon âge en secondes (via age_en_secondes) :", \
mon_age_en_secondes)