#-------------------------------------------------- #------Answer Sheet: Problem: date management------ #-------------------------------------------------- # Question1: >>> s='12-03-2021' >>> s.split() ['12-03-2021' ] >>> s.split('-') ['12', '03', '2021'] >>> s.split('/') ['12-03-2021' ] >>> s.replace('-','/').split('/') ['12', '03', '2021'] # Question2: def decouper(s,iter): new_s=s for c in iter: new_s=new_s.replace(c,'*') date_list=new_s.strip().split('*') return date_list # Question3: def liste_conv(l): try: return [int(k) for k in l] except: return [] # Question4: mois=[ {'nb_j':31,'libelle':'Janvier'}, {'nb_j':28,'libelle':'Février'}, {'nb_j':31,'libelle':'Mars'}, {'nb_j':30,'libelle':'Avril'}, {'nb_j':31,'libelle':'Mai'}, {'nb_j':30,'libelle':'Juin'}, {'nb_j':31,'libelle':'Juillet'}, {'nb_j':31,'libelle':'Août'}, {'nb_j':30,'libelle':'Septembre'}, {'nb_j':31,'libelle':'Octobre'}, {'nb_j':30,'libelle':'Novembre'}, {'nb_j':31,'libelle':'Décembre'} ] def date_correcte(d): if 1<=d[0]<=mois[d[1]]['nb_j'] and 1<=d[1]<=12 and d[2]<=9999: return True else: return False # Question5: def saisir_date(): while True: dt=input("donner une date sous cette format JJ-MM-AAA ou JJ/MM/AAA") dt_decoupe=decouper(dt,'/-') dt_detail=liste_conv(dt_decoupe) if date_correcte(dt_detail): break return dt_detail # Question6: def max_dates(d1,d2): if d1[-1]=d0[1]): months=d1[1]-d0[1] else: months=12+d1[1]-d0[1] years=years-1 if d1[0]>d0[0]:jours=d1[0]-d0[0] else:jours=mois[d1[0]]['nb_j']+d1[0]-d0[0] return {'jour':jours,'month':months,'years':years} # Question 8 def verifier_anniv(): try: print('------date de naissance----') date_naissance=saisir_date() while True: print('------date qque----') date_qque=saisir_date() if max_dates(date_naissance,date_qque): print('marche') break age_exac=diff_date(date_naissance,date_qque) print("l'age exacte est :",age_exac['jour'],"jours",age_exac['month'],"mois",age_exac['years'],"ans") if age_exac['jour']==age_exac['month']==0: print('Bonne anniversaire') except: print("il y a eu une erreur") verifier_anniv() # Pour forcer l'exécution