JOUR JULIEN, DATE JULIENNE

cs_HeXoR Messages postés 165 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 15 avril 2010 - 13 mai 2003 à 18:18
cs_Tioneb Messages postés 193 Date d'inscription dimanche 16 décembre 2001 Statut Membre Dernière intervention 29 juillet 2015 - 5 mars 2006 à 19:03
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/7080-jour-julien-date-julienne

cs_Tioneb Messages postés 193 Date d'inscription dimanche 16 décembre 2001 Statut Membre Dernière intervention 29 juillet 2015
5 mars 2006 à 19:03
Salut,
pour que ça fonctionne j'ai du modifier le code. Je le donne pour RAMANVDA (je sais pas si tu en a encore besoin, mais sinon ça servira pour quelqu'un d'autre):


Public Function JourJulien(dDate As Date) As Integer
Dim oDate As Date

oDate = CDate("01/01/" & Right(CStr(dDate), 4)) ' premier jour de l'année
JourJulien = dDate - oDate + 1 ' Le résultat ;)

End Function


Et avec ça, ça fonctionne super!
ramanvda Messages postés 11 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 16 juin 2015
24 mars 2005 à 14:16
Le text1 (la variable dDate) est stocké de la sorte: "13/01/2003" et non pas "2003/01/13". Surement pb des option régionale.

Ainsi Left(dDate, 4) renvoi "13/0" et non pas "2003" même si je rentre en text1 "2003/01/13"

Il faudrait formater la varible dDate en "yyyy/mm/dd"

Sinon cela m'a aidé à comprendre le système julien donc 10/10 pour la note (je récupérer en Query des dates juliennes sur un AS400)

Pour info voici mon bout de code en VBA (pas VB) pour convertir des dates grégoriennes en Juliennes et inversement (dans le cas de mon AS400):
'-----------------------------------------------
Function DateG(case1 As Range) As Date
Dim oDate As Date
Dim julien As Long
Dim an As String, jour

julien = CLng(case1.Text)

Select Case julien
Case Is >= 100000
an = "20" & Mid(julien, 2, 2)
Case Is < 100000
an = "19" & Mid(julien, 1, 2)
Case Else
DateG = "erreur"
End Select

jour = Right(julien, 3)
oDate = CDate("01/01/" & an)

DateG = oDate + CInt(jour)
End Function

'-----------------------------------------------
Function DateJ(case1 As Range) As Long
Dim oDate As Date
Dim greg As Date
Dim an As String, jour
Dim JourJ As Integer

greg = CDate(case1.Text)

an = Right(greg, 2)

oDate = "01/01/" & an

JourJ = greg - oDate + 1
If JourJ < 100 Then
DateJ = CLng("1" & an & "0" & JourJ)
Else
DateJ = CLng("1" & an & JourJ)
End If
End Function
'-----------------------------------------------
C'est pas top mais ça fonctionne.

Merci à tous! Chaio:!
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 mars 2005 à 18:34
un coup des options régionales, peut être....
dpouliot Messages postés 50 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 4 novembre 2008
23 mars 2005 à 17:36
Bonjour ramanvda
Vérifie le résultat de la fonction Left(dDate, 4)
Tu devrais y voir l'année ex.: "2005".
Le principe est de soustraire 2 dates.
Tu peux esseyer en inversant la fonction de date

oDate = "01/01/" & Right(dDate,4)

Écrits tes résultats sur cette page pour le bénéfice de tous.
ramanvda Messages postés 11 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 16 juin 2015
23 mars 2005 à 10:16
Cela ne fonction pas chez moi...Dommage car cela m'aurait bien intéréssé.

Le prog bloque ici:
oDate = Left(dDate, 4) & "/01/01" ' premier jour de l'année

J'ai essayé avec 13/01/2003, 13/01/03, 2003/01/03...rien ne passe.

J'ai essayé cela mais sans résultat:
oDate = CDate(Left(CStr(dDate), 4) & "/01/01") ' premier jour de l'année

help!
iurodivi Messages postés 4 Date d'inscription mercredi 17 décembre 2003 Statut Membre Dernière intervention 22 décembre 2003
22 déc. 2003 à 01:30
pour HeXoR:
pourquoi critiquer quand on ne connait pas?!

cela est tres utile
Jujufouq Messages postés 254 Date d'inscription jeudi 27 décembre 2001 Statut Membre Dernière intervention 5 mars 2006
4 août 2003 à 23:30
Merci Cadryal.
Cadryal Messages postés 2 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 4 août 2003
4 août 2003 à 20:30
En passant, bravo dpouliot, ce code est bien optimisé.

Pour son utilité, c'est encore plus utile que l'on peut le croire. Dans des bases de données des grande envergure sur des céduleurs qui fonctionnent sur des systèmes centraux d'acienne génération(TSO, IDEAL), les formats de dates fonctionnent généralement sur le calendrier Julien.

Mis à part certaines application SQL, la programmation de nos jours ne requière que des dates sous le format Grégorien.
Cadryal Messages postés 2 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 4 août 2003
4 août 2003 à 20:12
Tient JuJu, pour alimenter ton érudition historique concernant les dates.
http://louisg.levillage.org/C_julien.htm
Jujufouq Messages postés 254 Date d'inscription jeudi 27 décembre 2001 Statut Membre Dernière intervention 5 mars 2006
5 juin 2003 à 18:40
Au fait, ça vient d'où le nom de Jour Julien? En fait, je ne connaissait pas, et comme mon p'tit nom c'est le même, j'aurai aimé savoir... Peut-être que si quelqu'un sait il peut m'écrire un message plutôt que de le faire ici. Allez, salut tlm!
bykounour Messages postés 3 Date d'inscription samedi 29 mars 2003 Statut Membre Dernière intervention 5 juin 2003
5 juin 2003 à 14:57
Contrairement à ce que tu crois HeXoR ben elle sert cette source, je suis bien content je cherchais et je viens de trouver ce qu'il me faut!
Youpi
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 mai 2003 à 10:12
premier javnvier , l'année est au debut !
on recupere l'année , on ajoute 01/01 , et on a un type Date , qui contient la date du premier jour de l'annee.

une soustraction donne finalement la difference : le nombre du jour courant.
erreurs404 Messages postés 117 Date d'inscription lundi 23 octobre 2000 Statut Membre Dernière intervention 12 août 2009
14 mai 2003 à 10:09
pourquoi "01/01" on est encore en 2001 ???
nan sérieusement ... c'est quoi ?
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 mai 2003 à 22:01
meme remarque , c'est un peu exagéré comme réaction , c'est une astuce qui peut servir.....
Jujufouq Messages postés 254 Date d'inscription jeudi 27 décembre 2001 Statut Membre Dernière intervention 5 mars 2006
13 mai 2003 à 21:44
Et alors, c'est une source qui peut servir et puis au moins c'est une source, et puis en plus elle explique quelque chose. Alors HeXoR, je suis désolé, mais je trouve ta réaction pas normale. dpouliot au moins pense aux autres... et ce site est là aussi pour ses sources quelles qu'elles soient. Je fais remonter la note parce que je ne pense pas qu'il faille 1, mais plutot 5 à cause de l'intérêt.
cs_HeXoR Messages postés 165 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 15 avril 2010
13 mai 2003 à 18:18
Ca sert un peu BEAUCOUP à rien 1/10 :)
Rejoignez-nous