Comment transformer une date jj/mm/aaaa en aaaaMMjj ? [Résolu]

Messages postés
2
Date d'inscription
samedi 21 septembre 2019
Statut
Membre
Dernière intervention
21 septembre 2019
-
Bonjour, je cherche un moyen de transformer une date sous format jj/mm/aaaa en aaaaMMjj.

C'est dans le cadre d'un exercice.
Je dois créer un login et un mot de passe suite à la saisie de certaines informations (nom, prénom, date de naissance, département de naissance et sexe). Pour créer le mot de passe je dois concaténer le sexe (c'est une variable integer), le département de naissance et la date de naissance en format aaaaMMjj.

Mais je suis obligé de saisir la date en jj/mm/aaaa.

Vous auriez la solution ?

Voici le code
Sub Main()
        Dim nom, prenom As String
        Dim sexe, dep As Integer
        Dim daten As Date ' Ici j'initialise la variable daten.
        Dim login, mdp As String

        Console.Write("Saisir le nom: ")
        nom = Console.ReadLine
        Console.Write("Saisir le prenom: ")
        prenom = Console.ReadLine
        Console.Write("Saisir le sexe 1:Masculin, 2:Féminin : ")
        sexe = Console.ReadLine
        Console.Write("Saisir la date de naissance en jj/mm/aaaa: ") ' Je saisi la date.
        daten = Console.ReadLine
        Console.Write("Saisir le numéro du departement de naissance: ")
        dep = Console.ReadLine

        login = Left(prenom, 1) & nom

        mdp = daten & sexe & dep ' Je créer le mot de passe.

        Console.WriteLine(prenom & " " & nom)
        Console.WriteLine("Nom d'utilisateur: " & login)
        Console.WriteLine("Mot de passe: " & mdp)
        Console.Read()
    End Sub
Afficher la suite 

2 réponses

Messages postés
2
Date d'inscription
samedi 21 septembre 2019
Statut
Membre
Dernière intervention
21 septembre 2019
0
Merci
Bon j'ai réussi en transformant la date en string puis en utilisant les fonctions Left, Mid et Right.

Dim aaaa, mm, jj As String

' ...

jj = Left(daten, 2)
mm = Mid(daten, 4, 2)
aaaa = Right(daten, 4)


Mais il n'y aurait pas une méthode moins barbare ?
Commenter la réponse de Rocklavy
Messages postés
14039
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 décembre 2019
324
0
Merci
Bonjour

Tout d’abord left, mid etc... c’est pas du vb.net, c’est du vb6.
Microsoft tolère un vb6 dans vb.net, cependant ce faisant on mélange programmation séquentielle et programmation objet, je ne conseille pas.
Voici un article qui traite du sujet https://codes-sources.commentcamarche.net/faq/11151-pourquoi-mon-code-vb6-vba-ne-marche-pas-en-vb-net

Pour ton problème, en restant en string (qui n’est pas une date mais du texte), tu peux splitter le texte avec / comme séparateur, tu inverses le tableau obtenu et tu le joins avec ce que tu veux comme séparateur.

Sinon tu parses le texte en DateTime dont tu utilises la méthode ToString pour spécifier un format texte.
Commenter la réponse de Whismeril