Private Sub Command1_Click() On Error Resume Next ' si format non valide Text2.Text = "" ' Inscrire dans text1 une date valide Text2.Text = JourJulien(Text1.Text) End Sub ' ************************************************* Function JourJulien(dDate As Date) As Integer Dim oDate As Date oDate = Left(dDate, 4) & "/01/01" ' premier jour de l'année JourJulien = dDate - oDate + 1 ' Le résultat ;) End Function ' *************************************************
Ca sert un peu BEAUCOUP à rien 1/10 :)
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.
meme remarque , c'est un peu exagéré comme réaction , c'est une astuce qui peut servir.....
pourquoi "01/01" on est encore en 2001 ???nan sérieusement ... c'est quoi ?
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.
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
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!
Tient JuJu, pour alimenter ton érudition historique concernant les dates.http://louisg.levillage.org/C_julien.htm
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.
Merci Cadryal.
pour HeXoR:pourquoi critiquer quand on ne connait pas?!cela est tres utile
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éeJ'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éehelp!
Bonjour ramanvdaVé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 dateoDate = "01/01/" & Right(dDate,4)Écrits tes résultats sur cette page pour le bénéfice de tous.
un coup des options régionales, peut être....
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 DateDim oDate As DateDim julien As LongDim an As String, jourjulien = CLng(case1.Text)Select Case julienCase Is >= 100000an = "20" & Mid(julien, 2, 2)Case Is < 100000an = "19" & Mid(julien, 1, 2)Case ElseDateG = "erreur"End Selectjour = Right(julien, 3)oDate = CDate("01/01/" & an)DateG = oDate + CInt(jour)End Function'----------------------------------------------- Function DateJ(case1 As Range) As LongDim oDate As DateDim greg As DateDim an As String, jourDim JourJ As Integergreg = CDate(case1.Text)an = Right(greg, 2)oDate = "01/01/" & anJourJ = greg - oDate + 1If JourJ < 100 ThenDateJ = CLng("1" & an & "0" & JourJ)ElseDateJ = CLng("1" & an & JourJ)End IfEnd Function'----------------------------------------------- C'est pas top mais ça fonctionne.Merci à tous! Chaio:!
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 IntegerDim oDate As Date oDate = CDate("01/01/" & Right(CStr(dDate), 4)) ' premier jour de l'annéeJourJulien = dDate - oDate + 1 ' Le résultat ;) End FunctionEt avec ça, ça fonctionne super!
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 873 522 membres 54 nouveaux aujourd'hui 16 151 membres club