Salut tout le monde est ce qu'il y aurait en VB.Net une fonction qui permet de retourner le nombre d'année, de mois et de jours pour une valeur donnée ??
Salut tout le monde est ce qu'il y aurait en VB.Net une fonction qui permet de retourner le nombre d'année, de mois et de jours pour une valeur donnée ??
Quel type de valeur veux tu dire ? Transformer un nombre de jours en années/mois/jours ?
376 deviendrait 1 an, 11 jours par exemple ?
La classe Date contient bon nombre de méthodes pour ces fonctions ...
Il suffit de chercher grace à l'intellisence.
oui OhMonBato, c'est exactement ce que je cherche si je saisis un nombre de jour "376 deviendrait 1 an, 11 jours" oui c'est ça.
Salut !
Le problème, c'est qu'il faut savoir ce que tu veux exactement.
Convertir une durée en nombre de jours sans point de départ, ça veut pas dire grand chose, puisque les jours par mois ou par années ne sont pas fixes...
Eventuellement, tu te positionnes au TaDate = 01/01/01, puis tu fais TonRes = TaDate.AddDays(TaValeurAAjouter), et tu ajustes les effets de bords sur ton résultat...
Mis à part le nombre d'années, la classe TimeSpan répond à ton besoin.
Tu vas y trouver des propriétés Days, Hours, etc... et leur équivalent TotalDays, TotalHours, etc...
Non pacmann, ce que OhMonBato a dit est juste. je voudrai savoir l'âge d'une personne entre la date actuelle et sa date de naissance. parce que j'ai fait:
et "diff" va me rendre le nombre de jours alors que je voudrai que le résultat soit en Année,mois et jours
Code : Sélectionner tout - Visualiser dans une fenêtre à part diff = DtR.Subtract(Me.CC._Dtt.Rows(i).Item(4))
Merci pour vote aide
ça y est, bon j'ai implémenté une petite fonction qui me permettrait de='obtenir le résultat voulut.
peut être qu'elle vous sera utile un jour.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Function ConvertisseurAnnMoisJour(ByVal maDureeJour As Integer) As Integer Dim nbAns As Integer Dim nbMois As Integer Dim nbJours As Integer nbAns = maDureeJour \ 365.25 nbMois = (maDureeJour Mod 365.25) \ 30.4375 nbJours = (maDureeJour Mod 365.25) Mod 30.4375 'Pour tester, à adapter bien sûr. Return MsgBox(nbAns & " années " & nbMois & " mois " & nbJours & " jours ") End Function
Merci comme même
En fait, cette fonctionne ne marche pas lorsque le nombre de jours équivaut à 365.
Et quand bien même, ce n'est qu'une approximation. Maintenant ça peut suffire.
Mais d'un point vue "scientifique", année et mois ne sont pas des unités de mesures puisque variables. Jour par contre, ça passe (sa durée ne varie jamais).
Je suis frileux avec les calculs de date basés sur "des moyennes" depuis une mésaventure racontée sur le forum.
Un membre du forum m'avait aidé en me proposant un algo que j'ai adapté au problème ici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Public Function DateDiffAnneeMoisJour(Nbjour As Integer) As Integer() Dim dateFin As DateTime = Now Dim dateDebut As DateTime = Now.AddDays(-Nbjour) Dim year As Integer = dateFin.Year - dateDebut.Year Dim month As Integer = dateFin.Month - dateDebut.Month Dim day As Integer = dateFin.Day - dateDebut.Day If month < 0 Then year = year - 1 month = month + 12 End If If day < 0 Then month = month - 1 day = day + DateTime.DaysInMonth(dateDebut.Year, dateDebut.Month) End If Return {year, month, day} End Function
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager