IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Python Discussion :

Calcul des dates qui forment un palindrome


Sujet :

Contribuez Python

  1. #1
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut Calcul des dates qui forment un palindrome
    Bonjour,

    Le 02/02/2020 a été une date en palindrome, puisqu'elle donne la même lecture dans l'autre sens: 02022020.

    Calculons maintenant les prochaines dates ayant la même caractéristique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from calendar import isleap # test pour les années bissextiles
     
    nbjmois = [31,28,31,30,31,30,31,31,30,31,30,31]
    for a in range(2020, 3001):
        nbjmois[1] = 29 if isleap(a) else 28
        for m in range(1, 13):
            for j in range(1, nbjmois[m-1]+1):
                ch = "{:02d}{:02d}{:04d}".format(j, m, a)
                if ch==ch[::-1]:
                    print(ch)
    Et voilà les 10 prochaines dates en palindrome:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    12022021
    22022022
    03022030
    13022031
    23022032
    04022040
    14022041
    24022042
    05022050
    15022051
    Il y en aurait 366 tous les 10000 ans...
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par tyrtamos Voir le message
    Il y en aurait 366 tous les 10000 ans...
    Le pattern étant jjmmyyyy... on prend d'abord les 2 caractères extrêmes jjmmyyyy.
    Si jj varie de 01 à 31, on va pouvoir lui associer sans problème les années 10, 20, .... 13.
    Et si on regarde la variabilité de l'intérieur jjmmyyyy, mm varie de 01 à 12.

    Ce qui donne de l'ordre de 31 * 12 = 372 possibilités.
    Mais évidement, les mois n'ayant pas tous 31 jours, 31*7 + 30*5 = 367 est une meilleure approximation.
    A affiner en prenant compte le mois de février de 28 jours et de 29 jours presque tous les 4 ans et on devrait arriver à 366.

    Pour le reste... vu le nombre de fois que nous avons changé de calendrier ces derniers 10000 ans...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Merci wiztricks

    J'ai repris les "366 tous les 10000 ans" pour les avoir lus quelque part, mais j'avais vérifié tout de même avec mon code "for a in range(10000,20001):" qui donne 366. Et c'est la même chose pour range(20000,30001).

    Je ne suis pas allé plus loin .
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

Discussions similaires

  1. Calculer des dates avec fonction Gel de temps
    Par maxdata dans le forum Langage
    Réponses: 4
    Dernier message: 06/12/2012, 13h01
  2. Réponses: 6
    Dernier message: 29/06/2012, 09h24
  3. calculs des dates
    Par Javix dans le forum Ruby on Rails
    Réponses: 3
    Dernier message: 01/04/2009, 15h27
  4. Comment calculer des dates
    Par Grosmou dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 28/02/2008, 13h25
  5. Calcul des dates et des jours ouvrés
    Par okparanoid dans le forum Langage
    Réponses: 2
    Dernier message: 08/12/2007, 16h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo