UniSquat_Python/date_tools.py

128 lines
2.4 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Feb 24 16:36:32 2022
@author: antoine
"""
################
### UniSquat ###
################
"""
Indique toutes les salles disponibles dans les différents départements de
l'Université de Strasbourg.
"""
### Fichier contenant diverses fonctions relatives à la date du jour et à l'heure ##
# Modules :
import datetime
# Fonctions :
def minutes_convert(time_min) :
"""
Convertit un temps en minute en un temps en heures:minutes.
Parameters
----------
time_min : int
Temps en minutes.
Returns
-------
int
Temps en heures.
int
Temps en minutes.
"""
return int(time_min // 60), int(time_min % 60)
def bissextile(year) :
"""
2022-02-24 18:46:53 +01:00
Indique si l'année 'year' est bissextile ou non.
Parameters
----------
year : int
Année dont on veut vérifier la bissextilité.
Returns
-------
bool
'True' si 'year' est bissextile, 'False' sinon.
"""
2022-02-24 18:46:53 +01:00
return (year % 4 == 0 and year % 100 != 0) or year % 400 == 0
def month_days(month, year) :
"""
Renvoie le nombre de jours dans le mois 'month'.
Parameters
----------
month : int (between 1 and 12)
Mois dont on veut connaître le nombre de jours.
year : int
Année, pour vérifier la bissextilité (cas du mois de février).
Returns
-------
int
Nombre de jours dans 'month'.
"""
2022-02-24 18:46:53 +01:00
if month == 2 :
if bissextile(year) :
return 29
else :
return 28
elif month in (4,6,9,11) :
return 30
else :
return 31
2022-02-24 18:46:53 +01:00
def date_input() :
"""
Demande à l'utilisateur d'entrer une date (jour, mois, année,
heure, minutes).
Returns
-------
datetime.datetime()
Date entrée au format datetime.
"""
2022-02-24 18:46:53 +01:00
year = int(input("Entrer l'année.\n> "))
2022-02-24 18:46:53 +01:00
month = 0
while month not in range(1, 13) :
month = int(input("Entrer le mois.\n> "))
2022-02-24 18:46:53 +01:00
mdays = month_days(month, year)
day = 0
while day not in range(1, mdays + 1) :
day = int(input("Entrer le jour.\n> "))
2022-02-24 18:46:53 +01:00
hour = -1
while hour not in range(0, 25) :
hour = int(input("Entrer l'heure.\n> "))
2022-02-24 18:46:53 +01:00
minute = -1
while minute not in range(0, 60) :
minute = int(input("Entrer les minutes.\n> "))
2022-02-24 18:46:53 +01:00
return datetime.datetime(year, month, day, hour, minute)