Jour calendaire

Résolu
Messages postés
225
Date d'inscription
vendredi 14 janvier 2005
Statut
Membre
Dernière intervention
29 septembre 2016
-
Messages postés
225
Date d'inscription
vendredi 14 janvier 2005
Statut
Membre
Dernière intervention
29 septembre 2016
-
Bonjour , je souhaiterai afficher dans un text box le jour calendaire ( 01/01 jour 1 ..... 31/12 365 )
mais je ne trouve pas la cde .

merci votre aide

5 réponses

Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
7
A priori, au moins en VBA, je ne trouve pas cette fonction. Mais tu peux la créer toi même facilement.
Il te suffit de faire la différence entre la date qui t'intéresse et le 01/01 de l'année qui t'intéresse (te suffit de rentrer en variable l'année avec une fonction comme DateSerial par exemple)

Par exemple, la date qui t'intéresse est le 06/09/2006.
Tu le saisis dans une textbox, inputbox, ce que tu veux (je vais prendre une textbox Date) et tu fais :

txt_JourCalendaire.Text = DateValue(txt_date.Text) - DateSerial(Year(txt_date.Text), 1, 1) + 1

Molenn
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Tu peux essayer ceci

Dim D1 As Date
Dim D2 As Date
D2 = "31/12/" & CStr(Year(Date) - 1)
D1 = "01/01/2006"
MsgBox D1 - D2  '=>  donnera 1 ... 365

Ou bien tu peux aussi t'orienter vers la fonction DateDiff

@+,   Ju£i?n
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Salut,

N'étant plus sûr qu'une telle fonction existe en VB6, voici un p'tit code qui fait l'affaire





Dim mois(11) as Long
Dim sDate As String
Dim tablo() As String
Dim indiceJour As Integer
Dim indiceMois As Integer
'tableau valable pour les années non bissextiles. a adapter sinon.
mois(0) = 0
mois(1) = 31
mois(2) = 59
mois(3) = 90
mois(4) = 120
mois(5) = 151
mois(6) = 181
mois(7) = 212
mois(8) = 243
mois(9) = 273
mois(10) = 304
mois(11) = 334

sDate = "04/10"
tablo = Split(sDate,"/")
indiceJour = CInt(tablo(0))
indiceMois = CInt(tablo(1))-1
numeroCalendaire = mois(indiceMois) + indiceJour




A toi de faire les tests de validité de sDate (à savoir, jour <32, 0 < mois < 13, ...)







Manu


--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
49
salut,
çà devrait être correct :

Function DayOfTheYear(dDate As Date) As Integer 
    Dim aMonth() 
    aMonth =   Array (0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334) 

    Dim sDate$ 
    sDate  = Format(dDate, "DDMMYYYY") 

    Dim d%, m%, y% 
    d =   Val (LeftB$(sDate, 4)) 
    m  = Val(MidB$(sDate, 5, 4)) 
    y =   Val (RightB$(sDate, 8)) 

    DayOfTheYear  = Val(aMonth(m - 1)) + d 

'   bisextile?
    If (y And 3) =  0) And (m >= 3) Then DayOfTheYear = DayOfTheYear + 1 

    Erase aMonth 
End Function

<small> Coloration
syntaxique automatique [AFCK] </small>
       

++
PCPT  [AFCK]
<hr size ="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Messages postés
225
Date d'inscription
vendredi 14 janvier 2005
Statut
Membre
Dernière intervention
29 septembre 2016

Merci a tous .. j ai pris le code de Molenn qui fonctionne tres bien ..

merci a vous