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

PL/SQL Oracle Discussion :

Bissextile type julien


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 181
    Points : 64
    Points
    64
    Par défaut Bissextile type julien
    Bonjour,

    Une question s'il vous plaît

    J'ai une date d1 et je voulais determiner d2. ces deux dates sont sauvegardées dans la base, elles sont de type julien.
    le calcul qui sera fait dépends de d1 si l'année est bisextille ou non.

    Je voulais savoir est ce que on peut tester si une date bisextille ou pas à traers le format julien ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE OR REPLACE FUNCTION IsBissextile(year IN number) 
     RETURN number
     IS
     begin
       IF (mod(year, 4) = 0 AND (mod(year,100) != 0 OR mod(year, 400) = 0)) then
         RETURN 1;
    END IF;
       RETURN 0;
     end;
     /
    Merci.

  2. #2
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    Bonjour cheyma
    Pour moi , une année bissextile dans le calendrier Julien est simplement multiple de 4.
    Pour le calendrier Grégorien , elle doit être multiple de 4 mais pas de 100 et bien de 400 d’où le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IF (mod(year, 4) = 0 AND (mod(year,100) != 0 OR mod(year, 400) = 0)) then
         RETURN 1;
    .
    Donc pour un calendrier julien, c'est plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IF (mod(year, 4) = 0  then
         RETURN 1;
    .

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Michel Voir le message
    ...Donc pour un calendrier julien, c'est plus simple :
    Voilà ce lien pour mieux comprendre

  4. #4
    Membre expérimenté

    Homme Profil pro
    linux, pascal, HTML
    Inscrit en
    Mars 2002
    Messages
    649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : linux, pascal, HTML
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 649
    Points : 1 493
    Points
    1 493
    Billets dans le blog
    1
    Par défaut
    Pour information
    voir https://fr.wikipedia.org/wiki/Calendrier_julien

    Le calendrier instauré par Jules César en 46 av. J:


    • le calendrier conserve les douze mois du calendrier romain républicain ;
    • le début de l'année consulaire est fixé au 1er janvier (date d'élection des Consuls de Rome) à la place de mars;
    • l'année normale comporte 365 jours, et une année bissextile tous les 4 ans comporte un jour de plus

    La durée de la rotation de la terre autour du Soleil est d'environ 365,2422 jours. Le calendrier Julien fixe une année à 365,25 Jours.
    Ceci induisait un décalage d’environ 8 jours par millénaire !
    Ce décalage avait pour effet que l'équinoxe de printemps légal glissait progressivement en s'éloignant de l'équinoxe de printemps réel, et que ce dernier « remontait » donc lentement dans le calendrier, pour se situer aux alentours du 10 mars (julien) au XVIe siècle.
    La date de Pâques, fixée au dimanche suivant la première pleine lune de printemps en fonction de cet équinoxe théorique (21 mars), dérivait lentement vers l'été, et avec elle une partie du calendrier liturgique.

    En 1582, le pape Grégoire XIII (wikipedia) décida dans la bulle "Inter gravissimas" que le jeudi 4 octobre 1582 serait immédiatement suivi par le vendredi 15 octobre pour compenser le décalage accumulé au fil des siècles, depuis le premier concile de Nicée en 325, lorsque fut arrêté le calcul de la date de Pâques.
    (1582−325)×(365,25−365,2422)=10 jours
    Imposé par Grégoire XIII dans les États pontificaux, le calendrier grégorien fut aussi immédiatement adopté par l'Espagne, l'Italie, la Pologne, le Portugal et le duché de Savoie. En France, Henri III l'adopta le 9 décembre 1582, dont le lendemain fut le 20 décembre 1582.
    Le calendrier grégorien donne un temps moyen de l'année de 365,2425 jours.
    Pour assurer un nombre entier de jours à l'année, on y ajoute tous les 4 ans (années dont le millésime est divisible par 4) un jour intercalaire, le 29 février à l'exception des années séculaires ( multiples de 100) qui ne sont bissextiles que si leur millésime est divisible par 400. On considéra donc comme années communes (années de 365 jours) les millésimes qui sont multiples de 100 sans être multiples de 400. Ainsi 1600 et 2000 furent bissextiles, mais pas 1700, 1800, 1900 qui furent communes. De même, 2100, 2200, 2300 seront communes, alors que 2400 sera une année bissextile.

    En appliquant cette règle, on arrive à une année de 365,2425 jours au lieu de 365,242 189 8 jours soit un excès de 1 jour en 3 223 ans, ou 26,8 secondes par an.

  5. #5
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Merci pour ces informations.

    J'avais pensé qu'il y a un risque de confusion entre les dates stockées en format julien et le calendrier julien d'où mon intervention.

Discussions similaires

  1. programmation corba: le type "sequence"
    Par Kali dans le forum CORBA
    Réponses: 4
    Dernier message: 28/08/2005, 16h09
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. Réponses: 2
    Dernier message: 05/06/2002, 12h29
  4. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36

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