cs_HeXoR
Messages postés165Date d'inscriptionmercredi 29 janvier 2003StatutMembreDernière intervention15 avril 2010
-
13 mai 2003 à 18:18
cs_Tioneb
Messages postés193Date d'inscriptiondimanche 16 décembre 2001StatutMembreDernière intervention29 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.
cs_Tioneb
Messages postés193Date d'inscriptiondimanche 16 décembre 2001StatutMembreDernière intervention29 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és11Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention16 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és17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 23 mars 2005 à 18:34
un coup des options régionales, peut être....
dpouliot
Messages postés50Date d'inscriptionmardi 13 mai 2003StatutMembreDerniè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és11Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention16 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és4Date d'inscriptionmercredi 17 décembre 2003StatutMembreDernière intervention22 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és254Date d'inscriptionjeudi 27 décembre 2001StatutMembreDernière intervention 5 mars 2006 4 août 2003 à 23:30
Merci Cadryal.
Cadryal
Messages postés2Date d'inscriptionmercredi 23 avril 2003StatutMembreDerniè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és2Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 4 août 2003 4 août 2003 à 20:12
Jujufouq
Messages postés254Date d'inscriptionjeudi 27 décembre 2001StatutMembreDerniè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és3Date d'inscriptionsamedi 29 mars 2003StatutMembreDerniè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és17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 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és117Date d'inscriptionlundi 23 octobre 2000StatutMembreDernière intervention12 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és17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 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és254Date d'inscriptionjeudi 27 décembre 2001StatutMembreDerniè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és165Date d'inscriptionmercredi 29 janvier 2003StatutMembreDernière intervention15 avril 2010 13 mai 2003 à 18:18
5 mars 2006 à 19:03
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!
24 mars 2005 à 14:16
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:!
23 mars 2005 à 18:34
23 mars 2005 à 17:36
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.
23 mars 2005 à 10:16
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!
22 déc. 2003 à 01:30
pourquoi critiquer quand on ne connait pas?!
cela est tres utile
4 août 2003 à 23:30
4 août 2003 à 20:30
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.
4 août 2003 à 20:12
http://louisg.levillage.org/C_julien.htm
5 juin 2003 à 18:40
5 juin 2003 à 14:57
Youpi
14 mai 2003 à 10:12
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.
14 mai 2003 à 10:09
nan sérieusement ... c'est quoi ?
13 mai 2003 à 22:01
13 mai 2003 à 21:44
13 mai 2003 à 18:18