IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Convertir nombre de jours en année, mois et jours


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 99
    Points : 59
    Points
    59
    Par défaut Convertir nombre de jours en année, mois et jours
    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 ??

  2. #2
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    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 ?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Points : 254
    Points
    254
    Par défaut
    La classe Date contient bon nombre de méthodes pour ces fonctions ...
    Il suffit de chercher grace à l'intellisence.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 99
    Points : 59
    Points
    59
    Par défaut
    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.

  5. #5
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    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...

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Points : 553
    Points
    553
    Par défaut
    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...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 99
    Points : 59
    Points
    59
    Par défaut
    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:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    diff = DtR.Subtract(Me.CC._Dtt.Rows(i).Item(4))
    et "diff" va me rendre le nombre de jours alors que je voudrai que le résultat soit en Année,mois et jours

    Merci pour vote aide

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 99
    Points : 59
    Points
    59
    Par défaut
    ça y est, bon j'ai implémenté une petite fonction qui me permettrait de='obtenir le résultat voulut.
    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
    peut être qu'elle vous sera utile un jour.
    Merci comme même

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 17
    Points : 11
    Points
    11
    Par défaut
    En fait, cette fonctionne ne marche pas lorsque le nombre de jours équivaut à 365.

  10. #10
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    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).

  11. #11
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion d'un nombre de jours en années-mois-jours
    Par F@bien.fd dans le forum Débuter
    Réponses: 19
    Dernier message: 25/12/2013, 22h42
  2. Réponses: 3
    Dernier message: 09/11/2009, 14h00
  3. Réponses: 5
    Dernier message: 13/05/2008, 15h28
  4. Réponses: 7
    Dernier message: 18/06/2007, 16h40
  5. Réponses: 2
    Dernier message: 21/07/2006, 14h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo