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

ASP.NET Discussion :

Petit problème de conversion date asp vb


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2016
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2016
    Messages : 147
    Points : 81
    Points
    81
    Par défaut Petit problème de conversion date asp vb
    Bonjour,

    J'ai actuellement un problème embêtant voila mon bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim DateBatterie As Date = def._DateAchatBatterie      'def._DateAchatBatterie est un string ("20/09/2010")'
    Dim DateDuJour As Date = Now.Date
    Dim MoisRestant As Integer = DateDiff("m", DateBatterie, DateDuJour)
    En local je n'ai aucun problème tout se passe correctement, puis en le mettant en ligne petite surprise :
    Conversion from string "20/09/2010" to type 'Date' is not valid.

    Je ne comprends pas pourquoi cela fonctionne en local et pas en ligne.
    J'ai essayé de changer mon code avec du cdate ou du convert pour la convertir mais pas moyen.
    En mode débogage en local il n'y a vraiment aucun problème.

    Si une personne à une idée parce que la j'avoue...

    Merci.

    Cordialement

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Salut,

    Alors c'est certainement une histoire de langue de ton serveur.

    Pour parser une date regarde ici :


    Il y a vraiment plein de possibilité différente pour parser ta date.
    • Changer la langue pour le parse
    • Donner un format à la date


    N'hésite pas si tu as des questions

  3. #3
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    comme katkiller ... sauf que j'aurais parlé de "culture" plutôt que "langue"
    et t'aurais envoyé vers DateTime.ParseExact qui permet de fournir un format en string.

    Mais sinon tout pareil
    Plus je connais de langages, plus j'aime le C.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    comme katkiller ... sauf que j'aurais parlé de "culture" plutôt que "langue"
    Je préfère aussi le terme "culture"

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2016
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2016
    Messages : 147
    Points : 81
    Points
    81
    Par défaut
    Bonjour,

    Tout d'abord merci de votre aide.

    Alors j'ai testé vos trois solutions et toujours un soucis équivalent
    Dernier test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim provider As CultureInfo = CultureInfo.InvariantCulture
                    Dim DateBatterie As Date = Date.ParseExact(def._DateAchatBatterie, "dd/mm/yyyy", provider)
                    Dim DateDuJour As Date = Date.ParseExact(Now.Date, "dd/mm/yyyy", provider)
                    Dim MoisRestant As Integer = DateDiff("m", DateBatterie, DateDuJour)
    Erreur : String was not recognized as a valid DateTime.

    Pour les deux autres tests proposés par katkiller même erreur que le début de la conversation.

    Aie aie aie...

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2016
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2016
    Messages : 147
    Points : 81
    Points
    81
    Par défaut
    Bon vue que je ne suis pas patient pour le moment j'ai fait ceci (merci de ne pas rire )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
          Dim jour As Integer = Left(def._DateAchatBatterie, 2)
                    Dim ChaineMois As String = Left(def._DateAchatBatterie, 5)
                    Dim mois As Integer = Right(ChaineMois, 2)
                    Dim annee As Integer = Right(def._DateAchatBatterie, 4)
                    Dim DateBatterie As Date = New Date
                    DateBatterie = DateBatterie.AddDays(jour - 1)
                    DateBatterie = DateBatterie.AddMonths(mois - 1)
                    DateBatterie = DateBatterie.AddYears(annee - 1)
                    Dim DateDuJour As Date = Now.Date
                    Dim MoisRestant As Integer = DateDiff("m", DateBatterie, DateDuJour)
    Je sais c'est du bricolage mais ça fonctionne.

  7. #7
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    C'est le format de ta date qui n'est pas bon :

    "mm" veut dire : "Minute, définie entre 00 et 59"

    il faut utiliser "MM" pour les mois.

    voir lien

  8. #8
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Re,

    attention dans ta chaîne de format tu utilises de 'm' (minuscule) qui correspondent à des minutes,
    il faut utiliser des 'M' (majuscule) qui correspondent à des mois, exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim someDate As Date = Date.ParseExact("31/12/2016", "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture)
    Retente et tiens nous au jus

    edit : katkiller a été plus rapide ^^
    Plus je connais de langages, plus j'aime le C.

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2016
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2016
    Messages : 147
    Points : 81
    Points
    81
    Par défaut
    Oui je vais tenter de nouveau avec MM (idiot que je suis..)

  10. #10
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2016
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2016
    Messages : 147
    Points : 81
    Points
    81
    Par défaut
    Voila j'ai réussi grâce à vous.
    Un grand merci.

    Code exact :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim DateBatterie As Date = Date.ParseExact(def._DateAchatBatterie, "dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture)
                    Dim DateDuJour As Date = Now.Date
                    Dim MoisRestant As Integer = DateDiff("m", DateBatterie, DateDuJour)

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

Discussions similaires

  1. Petit problème de conversion EBCDIC -> ASCII
    Par alex140025 dans le forum Langage
    Réponses: 4
    Dernier message: 29/07/2011, 10h08
  2. Problème sur conversion date
    Par tornade69 dans le forum MySQL
    Réponses: 3
    Dernier message: 23/02/2009, 11h09
  3. Problème de conversion date String --> Date
    Par Jonathan.Harvey dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 08/10/2008, 16h38
  4. Petit problème de conversion
    Par Bluephoenix dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 21/04/2007, 10h59
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

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