#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Thu Feb 24 16:36:32 2022 @author: antoine """ ######################## ### Module datetools ### ######################## """ Diverses fonctions relatives à la date du jour et à l'heure. """ # Modules : import datetime # Fonctions : def is_bissextile(year) : """ 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. """ if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0 : return True else : return False 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'. """ if month == 2 : if bissextile(year) : return 29 else : return 28 elif month in (4,6,9,11) : return 30 else : return 31 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. """ year = int(input("Entrer l'année.\n> ")) month = 0 while month not in range(1, 13) : month = int(input("Entrer le mois.\n")) mdays = month_days(month, year) day = 0 while day not in range(1, mdays + 1) : day = int(input("Entrer le jour.\n> ")) hour = -1 while hour not in range(0, 25) : hour = int(input("Entrer l'heure.\n> ")) minute = -1 while minute not in range(0, 60) : minute = int(input("Entrer les minutes.\n> ")) return datetime.datetime(year, month, day, hour, minute)