Ceci est une ancienne révision du document !


anniv.py (cliquer pour afficher le code)

anniv.py
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
 
bdays = """\
23-8-1754   Louis XVI
24-8-1948   Jean-Michel Jarre
15-6-1943   Johnny Hallyday
28-9-1934   Brigitte Bardot
"""
 
from datetime import date
 
 
def str2date(str_date):
    d, m, y = str_date.split('-')
    return (int(y), int(m), int(d))
 
 
def find_next(bdays, md):
    if not bdays:
        return []
 
    match = []
    for l in bdays:
        next_date = (l[0][1], l[0][2])
        if len(match):
            # Check if there is another bday the same day
            if next_date == (match[0][0][1], match[0][0][2]):
                match.append(l)
            else:
                break
        elif next_date >= md:
            match.append(l)
 
    return match if len(match) else find_next(bdays, (0,0))
 
 
if __name__ == "__main__":
    converted = []
    for l in bdays.splitlines():
        tokens = l.strip().split()
        if tokens:
            converted.append((str2date(tokens[0]), ' '.join(tokens[1:])))
 
    # Sort by month and day
    sorted_bdays = sorted(converted, key=lambda d: (d[0][1], d[0][2]))
 
    today = date.today()
    md = (today.month, today.day)
    next_bdays = find_next(sorted_bdays, md)
    for bday in next_bdays:
        bmd = (bday[0][1], bday[0][2])
        if bmd == md:
            print(f"Aujourd'hui : Anniversaire de {bday[1]}\n{today.year-bday[0][0]} ans")
        else:
            isnextyear = bmd < md
            dt = date(today.year if not isnextyear else today.year+1, bmd[0], bmd[1]) - today
            print(f"Anniversaire de {bday[1]} dans {dt.days} jours\n{today.year-bday[0][0]} ans")

Téléchargez le script çi-dessus et copiez-le à l'endroit de votre choix sur votre système.

Éditer le script pour ajouter les dates d'anniversaire et les noms de vos amis ou autres personnalités préférés. Il est important de respecter format de la date AAA-MM-JJ'. L'ordre n'a pas d'importance (la liste est triée à chaque exécution du script).

Dans un terminal :

$ echo "python3 ~/anniv.py | cowsay" >> ~/.bashrc

Remplacer l'emplacement du script ~/anniv.py en fonction de l'endroit où vous l'avez mis sur votre machine.

  • ressource/code/python/anniversaires.1629721627.txt.gz
  • Dernière modification: 2021/08/23 14:27
  • par gweltaz