sum = 0 If numero = 365 Then d = New Date(year, 12, 31) Else For i As Integer = 0 To tabMonth.Length - 1 sum += tabMonth(i) If sum > numero Then day = numero - (sum - tabMonth(i)) month = i + 1 d = New Date(year, month, day) Exit For End If Next End If
Console.WriteLine(d.ToShortDateString)
Bonne journée.
A+
-- fmillox
"login XP" a écrit :
Je selectionne une date au format standart : 09/03/2006 et je la transforme de la façon suivante :
NumDayAnnee.Text = Me.Date.Value.DayOfYear exemple : en entrée je sélectionne le 09/03/2006 se qui donne : n°jour : 68 et année : 2006
Cela marche tres bien .
Comment puis je faire l'enverse avec comme données :
Un entier representant le N° de journée de l'année + un 2 eme entier avec l'année en cours
exemple : LabelN°Jour = 68 et LabelAnnée = 2006
pour avoir en sortie le 09/03/2006
merci de votre aide
laurent
Bonjour,
Essaye ce bout de code :
Dim tabMonth(12), sum, numero, day, month, year As Integer
Dim d As Date
sum = 0
If numero = 365 Then
d = New Date(year, 12, 31)
Else
For i As Integer = 0 To tabMonth.Length - 1
sum += tabMonth(i)
If sum > numero Then
day = numero - (sum - tabMonth(i))
month = i + 1
d = New Date(year, month, day)
Exit For
End If
Next
End If
Console.WriteLine(d.ToShortDateString)
Bonne journée.
A+
--
fmillox
"login XP" a écrit :
Je selectionne une date au format standart : 09/03/2006
et je la transforme de la façon suivante :
NumDayAnnee.Text = Me.Date.Value.DayOfYear
exemple : en entrée je sélectionne le 09/03/2006
se qui donne : n°jour : 68 et année : 2006
Cela marche tres bien .
Comment puis je faire l'enverse avec comme données :
Un entier representant le N° de journée de l'année + un 2 eme entier
avec l'année en cours
sum = 0 If numero = 365 Then d = New Date(year, 12, 31) Else For i As Integer = 0 To tabMonth.Length - 1 sum += tabMonth(i) If sum > numero Then day = numero - (sum - tabMonth(i)) month = i + 1 d = New Date(year, month, day) Exit For End If Next End If
Console.WriteLine(d.ToShortDateString)
Bonne journée.
A+
-- fmillox
"login XP" a écrit :
Je selectionne une date au format standart : 09/03/2006 et je la transforme de la façon suivante :
NumDayAnnee.Text = Me.Date.Value.DayOfYear exemple : en entrée je sélectionne le 09/03/2006 se qui donne : n°jour : 68 et année : 2006
Cela marche tres bien .
Comment puis je faire l'enverse avec comme données :
Un entier representant le N° de journée de l'année + un 2 eme entier avec l'année en cours
exemple : LabelN°Jour = 68 et LabelAnnée = 2006
pour avoir en sortie le 09/03/2006
merci de votre aide
laurent
Millox Frédéric
Re,
Petit oubli : il faut gérer le cas où numero < 1 ou numero > 365..... :)
A+
-- fmillox
"Millox Frédéric" a écrit :
Bonjour,
Essaye ce bout de code :
Dim tabMonth(12), sum, numero, day, month, year As Integer Dim d As Date
sum = 0 If numero = 365 Then d = New Date(year, 12, 31) Else For i As Integer = 0 To tabMonth.Length - 1 sum += tabMonth(i) If sum > numero Then day = numero - (sum - tabMonth(i)) month = i + 1 d = New Date(year, month, day) Exit For End If Next End If
Console.WriteLine(d.ToShortDateString)
Bonne journée.
A+
-- fmillox
"login XP" a écrit :
> Je selectionne une date au format standart : 09/03/2006 > et je la transforme de la façon suivante : > > NumDayAnnee.Text = Me.Date.Value.DayOfYear > exemple : en entrée je sélectionne le 09/03/2006 > se qui donne : n°jour : 68 et année : 2006 > > Cela marche tres bien . > > Comment puis je faire l'enverse avec comme données : > > Un entier representant le N° de journée de l'année + un 2 eme entier > avec l'année en cours > > exemple : LabelN°Jour = 68 et LabelAnnée = 2006 > > pour avoir en sortie le 09/03/2006 > > merci de votre aide > > laurent
Re,
Petit oubli : il faut gérer le cas où numero < 1 ou numero > 365..... :)
A+
--
fmillox
"Millox Frédéric" a écrit :
Bonjour,
Essaye ce bout de code :
Dim tabMonth(12), sum, numero, day, month, year As Integer
Dim d As Date
sum = 0
If numero = 365 Then
d = New Date(year, 12, 31)
Else
For i As Integer = 0 To tabMonth.Length - 1
sum += tabMonth(i)
If sum > numero Then
day = numero - (sum - tabMonth(i))
month = i + 1
d = New Date(year, month, day)
Exit For
End If
Next
End If
Console.WriteLine(d.ToShortDateString)
Bonne journée.
A+
--
fmillox
"login XP" a écrit :
> Je selectionne une date au format standart : 09/03/2006
> et je la transforme de la façon suivante :
>
> NumDayAnnee.Text = Me.Date.Value.DayOfYear
> exemple : en entrée je sélectionne le 09/03/2006
> se qui donne : n°jour : 68 et année : 2006
>
> Cela marche tres bien .
>
> Comment puis je faire l'enverse avec comme données :
>
> Un entier representant le N° de journée de l'année + un 2 eme entier
> avec l'année en cours
>
> exemple : LabelN°Jour = 68 et LabelAnnée = 2006
>
> pour avoir en sortie le 09/03/2006
>
> merci de votre aide
>
> laurent
sum = 0 If numero = 365 Then d = New Date(year, 12, 31) Else For i As Integer = 0 To tabMonth.Length - 1 sum += tabMonth(i) If sum > numero Then day = numero - (sum - tabMonth(i)) month = i + 1 d = New Date(year, month, day) Exit For End If Next End If
Console.WriteLine(d.ToShortDateString)
Bonne journée.
A+
-- fmillox
"login XP" a écrit :
> Je selectionne une date au format standart : 09/03/2006 > et je la transforme de la façon suivante : > > NumDayAnnee.Text = Me.Date.Value.DayOfYear > exemple : en entrée je sélectionne le 09/03/2006 > se qui donne : n°jour : 68 et année : 2006 > > Cela marche tres bien . > > Comment puis je faire l'enverse avec comme données : > > Un entier representant le N° de journée de l'année + un 2 eme entier > avec l'année en cours > > exemple : LabelN°Jour = 68 et LabelAnnée = 2006 > > pour avoir en sortie le 09/03/2006 > > merci de votre aide > > laurent
Millox Frédéric
Rere,
Il manquait des petites choses ( pas tous les cas traités )
Friend Function GetDate(ByVal NumberOfDayInYear As Integer, ByVal Year As Integer) As Date Dim tabMonth(12), sum, day, month As Integer Dim isLeapYear As Boolean Dim d As Date
isLeapYear = Date.IsLeapYear(year) If NumberOfDayInYear < 1 Or NumberOfDayInYear > IIf(isLeapYear, 366, 365) Then Throw New Exception("Erreur")
sum = 0 For i As Integer = 0 To tabMonth.Length - 1 sum += tabMonth(i) If sum > NumberOfDayInYear Then day = NumberOfDayInYear - (sum - tabMonth(i)) month = i + 1 d = New Date(Year, month, day) Exit For End If If i = tabMonth.Length - 1 And sum = NumberOfDayInYear Then d = New Date(Year, 12, 31) Next
Return d End Function
A+
-- fmillox
"Millox Frédéric" a écrit :
Re,
Petit oubli : il faut gérer le cas où numero < 1 ou numero > 365..... :)
A+
-- fmillox
"Millox Frédéric" a écrit :
> Bonjour, > > Essaye ce bout de code : > > Dim tabMonth(12), sum, numero, day, month, year As Integer > Dim d As Date > > numero = 32 > year = 2006 > > ' Init. > tabMonth(0) = 31 > tabMonth(1) = IIf(Date.IsLeapYear(year), 29, 28) > tabMonth(2) = 31 > tabMonth(3) = 30 > tabMonth(4) = 31 > tabMonth(5) = 30 > tabMonth(6) = 31 > tabMonth(7) = 31 > tabMonth(8) = 30 > tabMonth(9) = 31 > tabMonth(10) = 30 > tabMonth(11) = 31 > > sum = 0 > If numero = 365 Then > d = New Date(year, 12, 31) > Else > For i As Integer = 0 To tabMonth.Length - 1 > sum += tabMonth(i) > If sum > numero Then > day = numero - (sum - tabMonth(i)) > month = i + 1 > d = New Date(year, month, day) > Exit For > End If > Next > End If > > Console.WriteLine(d.ToShortDateString) > > Bonne journée. > > A+ > > -- > fmillox > > > "login XP" a écrit : > > > Je selectionne une date au format standart : 09/03/2006 > > et je la transforme de la façon suivante : > > > > NumDayAnnee.Text = Me.Date.Value.DayOfYear > > exemple : en entrée je sélectionne le 09/03/2006 > > se qui donne : n°jour : 68 et année : 2006 > > > > Cela marche tres bien . > > > > Comment puis je faire l'enverse avec comme données : > > > > Un entier representant le N° de journée de l'année + un 2 eme entier > > avec l'année en cours > > > > exemple : LabelN°Jour = 68 et LabelAnnée = 2006 > > > > pour avoir en sortie le 09/03/2006 > > > > merci de votre aide > > > > laurent
Rere,
Il manquait des petites choses ( pas tous les cas traités )
Friend Function GetDate(ByVal NumberOfDayInYear As Integer, ByVal Year As
Integer) As Date
Dim tabMonth(12), sum, day, month As Integer
Dim isLeapYear As Boolean
Dim d As Date
isLeapYear = Date.IsLeapYear(year)
If NumberOfDayInYear < 1 Or NumberOfDayInYear > IIf(isLeapYear, 366,
365) Then Throw New Exception("Erreur")
sum = 0
For i As Integer = 0 To tabMonth.Length - 1
sum += tabMonth(i)
If sum > NumberOfDayInYear Then
day = NumberOfDayInYear - (sum - tabMonth(i))
month = i + 1
d = New Date(Year, month, day)
Exit For
End If
If i = tabMonth.Length - 1 And sum = NumberOfDayInYear Then d =
New Date(Year, 12, 31)
Next
Return d
End Function
A+
--
fmillox
"Millox Frédéric" a écrit :
Re,
Petit oubli : il faut gérer le cas où numero < 1 ou numero > 365..... :)
A+
--
fmillox
"Millox Frédéric" a écrit :
> Bonjour,
>
> Essaye ce bout de code :
>
> Dim tabMonth(12), sum, numero, day, month, year As Integer
> Dim d As Date
>
> numero = 32
> year = 2006
>
> ' Init.
> tabMonth(0) = 31
> tabMonth(1) = IIf(Date.IsLeapYear(year), 29, 28)
> tabMonth(2) = 31
> tabMonth(3) = 30
> tabMonth(4) = 31
> tabMonth(5) = 30
> tabMonth(6) = 31
> tabMonth(7) = 31
> tabMonth(8) = 30
> tabMonth(9) = 31
> tabMonth(10) = 30
> tabMonth(11) = 31
>
> sum = 0
> If numero = 365 Then
> d = New Date(year, 12, 31)
> Else
> For i As Integer = 0 To tabMonth.Length - 1
> sum += tabMonth(i)
> If sum > numero Then
> day = numero - (sum - tabMonth(i))
> month = i + 1
> d = New Date(year, month, day)
> Exit For
> End If
> Next
> End If
>
> Console.WriteLine(d.ToShortDateString)
>
> Bonne journée.
>
> A+
>
> --
> fmillox
>
>
> "login XP" a écrit :
>
> > Je selectionne une date au format standart : 09/03/2006
> > et je la transforme de la façon suivante :
> >
> > NumDayAnnee.Text = Me.Date.Value.DayOfYear
> > exemple : en entrée je sélectionne le 09/03/2006
> > se qui donne : n°jour : 68 et année : 2006
> >
> > Cela marche tres bien .
> >
> > Comment puis je faire l'enverse avec comme données :
> >
> > Un entier representant le N° de journée de l'année + un 2 eme entier
> > avec l'année en cours
> >
> > exemple : LabelN°Jour = 68 et LabelAnnée = 2006
> >
> > pour avoir en sortie le 09/03/2006
> >
> > merci de votre aide
> >
> > laurent
Il manquait des petites choses ( pas tous les cas traités )
Friend Function GetDate(ByVal NumberOfDayInYear As Integer, ByVal Year As Integer) As Date Dim tabMonth(12), sum, day, month As Integer Dim isLeapYear As Boolean Dim d As Date
isLeapYear = Date.IsLeapYear(year) If NumberOfDayInYear < 1 Or NumberOfDayInYear > IIf(isLeapYear, 366, 365) Then Throw New Exception("Erreur")
sum = 0 For i As Integer = 0 To tabMonth.Length - 1 sum += tabMonth(i) If sum > NumberOfDayInYear Then day = NumberOfDayInYear - (sum - tabMonth(i)) month = i + 1 d = New Date(Year, month, day) Exit For End If If i = tabMonth.Length - 1 And sum = NumberOfDayInYear Then d = New Date(Year, 12, 31) Next
Return d End Function
A+
-- fmillox
"Millox Frédéric" a écrit :
Re,
Petit oubli : il faut gérer le cas où numero < 1 ou numero > 365..... :)
A+
-- fmillox
"Millox Frédéric" a écrit :
> Bonjour, > > Essaye ce bout de code : > > Dim tabMonth(12), sum, numero, day, month, year As Integer > Dim d As Date > > numero = 32 > year = 2006 > > ' Init. > tabMonth(0) = 31 > tabMonth(1) = IIf(Date.IsLeapYear(year), 29, 28) > tabMonth(2) = 31 > tabMonth(3) = 30 > tabMonth(4) = 31 > tabMonth(5) = 30 > tabMonth(6) = 31 > tabMonth(7) = 31 > tabMonth(8) = 30 > tabMonth(9) = 31 > tabMonth(10) = 30 > tabMonth(11) = 31 > > sum = 0 > If numero = 365 Then > d = New Date(year, 12, 31) > Else > For i As Integer = 0 To tabMonth.Length - 1 > sum += tabMonth(i) > If sum > numero Then > day = numero - (sum - tabMonth(i)) > month = i + 1 > d = New Date(year, month, day) > Exit For > End If > Next > End If > > Console.WriteLine(d.ToShortDateString) > > Bonne journée. > > A+ > > -- > fmillox > > > "login XP" a écrit : > > > Je selectionne une date au format standart : 09/03/2006 > > et je la transforme de la façon suivante : > > > > NumDayAnnee.Text = Me.Date.Value.DayOfYear > > exemple : en entrée je sélectionne le 09/03/2006 > > se qui donne : n°jour : 68 et année : 2006 > > > > Cela marche tres bien . > > > > Comment puis je faire l'enverse avec comme données : > > > > Un entier representant le N° de journée de l'année + un 2 eme entier > > avec l'année en cours > > > > exemple : LabelN°Jour = 68 et LabelAnnée = 2006 > > > > pour avoir en sortie le 09/03/2006 > > > > merci de votre aide > > > > laurent