#!/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) : """ 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. """ 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'. """ 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)