FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Date <-> Date julienne Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
Date <-> Date julienne Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Date <-> Date julienne Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Date <-> Date julienne Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Date <-> Date julienne Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Date <-> Date julienne Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Date <-> Date julienne Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Date <-> Date julienne Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Date <-> Date julienne Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Date <-> Date julienne Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Date <-> Date julienne Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Date <-> Date julienne Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Date <-> Date julienne Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Date <-> Date julienne Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Date <-> Date julienne Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
-55%
Le deal à ne pas rater :
Friteuse sans huile – PHILIPS – Airfryer HD9200/90 Série 3000
49.99 € 109.99 €
Voir le deal

 

 Date <-> Date julienne

Aller en bas 
5 participants
AuteurMessage
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Date <-> Date julienne Empty
MessageSujet: Date <-> Date julienne   Date <-> Date julienne EmptySam 18 Sep 2010 - 22:42

Trouvé sur le net, les formules de conversion de date (Année, Mois, Jour) en date julienne (JD = un nombre).
Conversion date (Annee, Mois, Jour) en date julienne (JD)
Code:
IF Mois < 3 THEN Mois = Mois + 12: Annee = Annee - 1
A = INT(Annee/100)
B = INT(A/4)
C = 2-A+B
E = INT(365.25*(Annee+4716))
F = INT(30.6001*(Mois+1))
JD = C+Jour+E+F-1524.5
Conversion date julienne (JD) en date (Jour, Mois, Année)
Code:
  Z = JD+0.5
  W = INT((Z - 1867216.25)/36524.25)
  X = INT(W/4)
  A = Z+1+W-X
  B = A+1524
  C = INT((B-122.1)/365.25)
  D = INT(365.25 * C)
  E = INT((B-D)/30.6001)
  F = INT(30.6001*E)
  Jour = B-D-F
  Mois = E-1: IF Mois > 12 THEN Mois = Mois - 12
  Annee = C-4716: IF Mois < 3 THEN Annee = Annee + 1
Pratique pour effectuer des calculs sur les dates: calculer par exemple le nombre de jours entre deux dates,
le nombre de jours écoulés depuis la naissance, etc.

Màj le 19/9 à 17h40


Dernière édition par JL35 le Dim 19 Sep 2010 - 18:09, édité 2 fois
Revenir en haut Aller en bas
Invité
Invité




Date <-> Date julienne Empty
MessageSujet: Re: Date <-> Date julienne   Date <-> Date julienne EmptySam 18 Sep 2010 - 22:53

Super !

Tu peux aussi utiliser le logiciel Calendes.

Juste ici.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Date <-> Date julienne Empty
MessageSujet: Re: Date <-> Date julienne   Date <-> Date julienne EmptySam 18 Sep 2010 - 23:13

Certes ! mais c'est plus amusant de programmer soi-même ses outils.
Et puis apparemment ce logiciel calcule certaines dates particulières, mais ne permet pas de calculs entre deux dates, ce qui est justement le but de la notice ci-dessus.
Revenir en haut Aller en bas
659_minifly




Nombre de messages : 590
Age : 76
Localisation : Valenciennes Nord
Date d'inscription : 29/04/2010

Date <-> Date julienne Empty
MessageSujet: Re: Date <-> Date julienne   Date <-> Date julienne EmptySam 18 Sep 2010 - 23:26

super ton programme y va me servir, merci
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Date <-> Date julienne Empty
MessageSujet: +++   Date <-> Date julienne EmptyDim 19 Sep 2010 - 0:35

Désolé, mais je ne comprends vraiment pas !
Qu'est-ce qu'une date julienne ?
Si c'est une date du calendrier Julien,
ça n'y ressemble pas (exemple : aujourd'hui donne : 2455458.926
Drôle de date !

Et si je passe ce chiffre (ou un autre) par la deuxième formule :
le Jour du Mois donne toujours zéro
le Mois ne colle jamais, que ce soit sur E-1 ou E-13
Il n'y a guère que l'année qui fonctionne bien.
N'y a-t-il pas des erreurs dans les formules ?

scratch
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Date <-> Date julienne Empty
MessageSujet: Re: Date <-> Date julienne   Date <-> Date julienne EmptyDim 19 Sep 2010 - 10:39

En ce qui concerne les dates, il y a 3 modules Panoramic sur mon site:
http://membres.multimania.fr/klaus/Bienvenue.1.html
Cliquer sur le bouton "Panoramic", et ce sont les 3 premières lignes...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Date <-> Date julienne Empty
MessageSujet: Re: Date <-> Date julienne   Date <-> Date julienne EmptyDim 19 Sep 2010 - 14:25

Rapidement,je dois partir...
- la date julienne dont il est question plus haut n'a rien à voir avec le calendrier Julien.
(C'est une façon d'exprimer une date en nombre de jours qui partent du 1er janvier -4712 à 12h GMT)
L'avantage du calcul est de ne pas se préoccuper des longueurs des mois ni des années bissextiles.
La méthode a toutefois des limites pour les années inférieures à 1582, en particulier les années inférieures à 400 (pour de sombres questions d'années bissextiles je crois).
- Après un rapide coup d'oeil, il faut prendre les valeurs entières dans la plupart des calculs, un exemple vite fait:
Code:
LABEL D2JD, JD2D
DIM A, B, C, D, E, F, JD, W, X, Z, Jour, Mois, Annee

' Exemple: 14 juillet 1789
Jour = 14: Mois = 7: Annee = 1789

print Jour, "/", Mois, "/", Annee
print
GOSUB D2JD
PRINT "JD = " + STR$(JD)
print
GOSUB JD2D
print Jour, "/", Mois, "/", Annee
END

D2JD:
' Jour, Mois, Annee -> JD
IF Mois < 3 THEN Mois = Mois + 12: Annee = Annee - 1
A = INT(Annee/100)
B = INT(A/4)
C = 2-A+B
E = INT(365.25*(Annee+4716))
F = INT(30.6001*(Mois+1))
JD = C+Jour+E+F-1524.5
RETURN

JD2D:
' JD -> Jour, Mois, Annee
  Z = JD+0.5
  W = INT((Z - 1867216.25)/36524.25)
  X = INT(W/4)
  A = Z+1+W-X
  B = A+1524
  C = INT((B-122.1)/365.25)
  D = INT(365.25 * C)
  E = INT((B-D)/30.6001)
  F = INT(30.6001*E)
  Jour = B-D-F
  Mois = E-1: IF Mois > 12 THEN Mois = Mois - 12
  Annee = C-4716: IF Mois < 3 THEN Annee = Annee + 1
RETURN

J'ai édité le 1er post et l'exemple ci-dessus (les routines sont devenues identiques), qui étaient incomplets.

@Klaus dont acte pour tes routines sur les dates, mais ici c'est fait de façon très simple, avec un simple calcul, sans boucles sur les années avec tous les tests afférents, années bissextiles etc.
Mais il est vrai que pour une utilisation pratique, il faudra rajouter les tests de validité des données fournies.

PS pour jjn4 (et les autres): la "date julienne" est donc un nombre de jours, qui se termine toujours par .5, en effet, l'origine étant fixée le 1/1/-4712 à 12h GMT (jour 0) la date rendue est à 0h GMT, donc 1/2 jour plus tard (d'où le .5).
Enfin, pitié, ne pinaillez pas trop (jjn4 Mad ) sur mes explications un peu fumeuses, je suis loin d'être un spécialiste en la matière, et pour ceux que ça intéresse vraiment... -> google, l'essentiel est que le calcul fonctionne.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Date <-> Date julienne Empty
MessageSujet: Re: Date <-> Date julienne   Date <-> Date julienne EmptyDim 19 Sep 2010 - 19:56

Jour de la semaine:
A première vue, on doit pouvoir, à partir de la date julienne (JD), connaître le jour de la semaine correspondant, sachant que jusqu'à preuve du contraire les semaines ont toujours été de 7 jours.
Donc il suffit de connaître le reste de la division de la date julienne par 7 pour trouver le jour.
Ainsi:
Code:
joursemaine = INT(7*FRAC(JD/7))
ce qui donnera, expérience faite: 0 = mardi, 1 = mercredi, 2 = jeudi, 3 = vendredi, 4 = samedi, 5 = dimanche, 6 = lundi
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2747
Date d'inscription : 13/09/2009

Date <-> Date julienne Empty
MessageSujet: +++   Date <-> Date julienne EmptyLun 20 Sep 2010 - 18:47

Ah oui, là ça marche !
Et ça donne des perspectives intéressantes... !
scratch
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Date <-> Date julienne Empty
MessageSujet: Re: Date <-> Date julienne   Date <-> Date julienne EmptyLun 20 Sep 2010 - 21:16

Il me semble oui, l'avantage c'est que c'est un calcul très simple et très rapide (même si les termes sont un peu tordus, mais bon, l'ordinateur n'est pas regardant), ça évite les longues boucles sur les années comme je faisais avant, avec tests à chaque fois des années bissextiles, etc.
C'est facile de faire un calendrier, et toutes les opérations sur les dates, entre autres.

Le terme de 'date julienne' n'est sans doute pas très approprié (prête à confusion), je n'en ai pas d'autre mais le lecteur en fera ce qu'il voudra !
Ça ne vient pas de Jules César, comme pour le calendrier Julien, mais d'un certain Julius Scaliger, père de Josephus Justus Scaliger, qui a inventé l'idée de compter les jours en continu depuis... -4712.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

Date <-> Date julienne Empty
MessageSujet: Re: Date <-> Date julienne   Date <-> Date julienne EmptyLun 20 Sep 2010 - 21:29

Un tordu ce Julius Scaliger Very Happy
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Date <-> Date julienne Empty
MessageSujet: Re: Date <-> Date julienne   Date <-> Date julienne EmptyLun 20 Sep 2010 - 21:47

Tu a raison, je l'ai bien connu, dans le temps...
Pourquoi -4712 ? il y a des raisons, mais je ne veux pas vous encombrer l'esprit avec ça !!! Very Happy
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Date <-> Date julienne Empty
MessageSujet: Re: Date <-> Date julienne   Date <-> Date julienne EmptyLun 20 Sep 2010 - 23:04

Un exemple d'utilisation des routines ci-dessus: un petit calendrier vite fait (exécution rapide) !
(l'année et le fichier résultat et la largeur des colonnes sont à changer à volonté)
Code:
DIM A, B, C, D, E, F, JD, W, X, Z, Jour, Mois, Annee, Fichcal$
DIM sa, sj, j1, j2, jr, i, j, lc, a$, b$, mp, js$(7), ms$(12), li$(32)
LABEL D2JD, JD2D, Calendrier
js$(0) = "Mardi": js$(1) = "Mercredi": js$(2) = "Jeudi": js$(3) = "Vendredi"
js$(4) = "Samedi": js$(5) = "Dimanche": js$(6) = "Lundi"
ms$(1) = "Janvier": ms$(2) = "Février": ms$(3) = "Mars": ms$(4) = "Avril"
ms$(5) = "Mai": ms$(6) = "Juin": ms$(7) = "Juillet": ms$(8) = "Août"
ms$(9) = "Septembre": ms$(10) = "Octobre": ms$(11) = "Novembre": ms$(12) = "Décembre"

Fichcal$ = "Z:\Calendrier_2010.txt": ' ********** à modifier *************

lc = 10: ' largeur de colonnes du calendrier
Annee = 2010: GOSUB Calendrier
PRINT "Terminé !"
END

D2JD:
' Jour, Mois, Annee -> JD
IF Mois < 3 THEN Mois = Mois + 12: Annee = Annee - 1
A = INT(Annee/100)
B = INT(A/4)
C = 2-A+B
E = INT(365.25*(Annee+4716))
F = INT(30.6001*(Mois+1))
JD = C+Jour+E+F-1524.5
RETURN

JD2D:
' JD -> Jour, Mois, Annee
  Z = JD+0.5
  W = INT((Z - 1867216.25)/36524.25)
  X = INT(W/4)
  A = Z+1+W-X
  B = A+1524
  C = INT((B-122.1)/365.25)
  D = INT(365.25 * C)
  E = INT((B-D)/30.6001)
  F = INT(30.6001*E)
  Jour = B-D-F
  Mois = E-1: IF Mois > 12 THEN Mois = Mois - 12
  Annee = C-4716: IF Mois < 3 THEN Annee = Annee + 1
RETURN

Calendrier:
sa = Annee: Mois = 1: Jour = 1: GOSUB D2JD: j1 = JD
Annee = sa: Mois = 12: Jour = 31: GOSUB D2JD: j2 = JD
mp = 0: sj = 31
FOR JD = j1 TO j2
    GOSUB JD2D: jr = INT(7*FRAC(JD/7))
    IF Mois <> mp
        IF sj < 31 AND Mois > 1
            FOR i = sj+1 TO 31: li$(i) = li$(i) + STRING$(lc, " "): NEXT i
        END_IF
        b$ = UPPER$(ms$(Mois)): IF lc < 10 THEN b$ = LEFT$(b$, lc-1)
        a$ = b$+ STRING$(lc-LEN(b$), " ")
        li$(0) = li$(0) + a$
        mp = Mois
    END_IF
    a$ = LEFT$(js$(jr), 2) + " " + STR$(Jour)
    a$ = a$ + STRING$(lc-LEN(a$), " ")
    li$(Jour) = li$(Jour) + a$
    sj = Jour
NEXT JD
FILE_OPEN_WRITE 1, Fichcal$
    a$ = STRING$(lc*6-8, "-") + " CALENDRIER " + STR$(sa)
    FILE_WRITELN 1, a$ + STRING$(lc*12 - LEN(a$), "-")
    FOR i = 0 TO 31: FILE_WRITELN 1, li$(i): NEXT i
    FILE_WRITELN 1, STRING$(lc*12, "-")
FILE_CLOSE 1
RETURN
Revenir en haut Aller en bas
Contenu sponsorisé





Date <-> Date julienne Empty
MessageSujet: Re: Date <-> Date julienne   Date <-> Date julienne Empty

Revenir en haut Aller en bas
 
Date <-> Date julienne
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Combo date : sélecteur de date
» Autre date
» Tri de Grid par date
» A propos de date...
» SPIN et DATE

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: