Lion994
Messages postés5Date d'inscriptiondimanche 30 août 2020StatutMembreDernière intervention 5 octobre 2020
-
4 oct. 2020 à 14:17
Whismeril
Messages postés18279Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention17 mars 2023
-
5 oct. 2020 à 11:38
Bonjour,
Voici mon problème, je souhaite récupérer les 2 derniers chiffres de l'année en cours mais je butte sur ce problème j'ai essayé plusieurs solutions et d'autres glaner sur de forum
// Recup de l'année DateTimePicker dt = new DateTimePicker(); //string aaa = dt.Value.ToString(); //Remove a substring from the middle of the string. string anneeCourte = dt.Text.Substring(dt.Text.IndexOf("2020"), 2); //Console.WriteLine(anneeCourte); TbxModif.Text = anneeCourte;
Note :
TbxModif est une textbox de mon form actuel que je me sert pour voir les résultats de certaine actions
J'ai essayé aussi cette façon car j'ai un numéro dans la case TbxNumInter qui est de la forme :20-XXXXX, mais je n'arrive pas à garder le format au bout de plusieurs itérations.
string numInter = TbxNumInter.Text.Replace("-", ""); // Je supprime un élément particulier de ma string TbxModif.Text = numInter; int newNumber = 0; newNumber = Convert.ToInt32(numInter);//attention le new number ets un INT newNumber += 1; string newNumInter = String.Empty; // bien creer une variable correspondant à ce que l'on veut Obtenir STring pour string à manipuler etc etc newNumInter = Convert.ToString(newNumber); TbxModif.Text = newNumInter;
Merci à ceux qui pourront m'indiquer ou je me trompe.
Whismeril
Messages postés18279Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention17 mars 2023621 Modifié le 4 oct. 2020 à 15:02
Bonjour
En fait ton erreur est celle de la majorité des autodidactes, dont moi en mon temps, tu t’es lancé dans ton projet en faisant l’impasse sur les bases.
Si tu avais appris ces bases, tu saurais qu’une date c’est pas du texte.
Tu ne saurais peut-être pas qu’il s’agit d’un nombre que l’homme dans sa grande perversité a décidé d’exprimer en base 60, des secondes au minutes, en base 24 pour les heures etc...
Mais tu aurais appris à en utiliser les méthodes et propriétés de bases.
Year par exemple, retourne l’année de n’importe quelle date en int, car oui c’est un entier et si tu veux travailler sur cette valeur par la suite c’est le mieux.
Par contre, s’il s’agit de composer un texte ( comme ton numéro 20_XXX..) alors une des surcharges de ToString() permet de spécifier un format d’expression d’une date en texte, comme par exemple juste les 2 derniers chiffres de l’année.
On peut même utiliser ce principe dans string.Format et composer directement le numéro en question.
Ayant appris les bases tu aurais au moins vu quelques exemples de tout ce dont je viens de te parler. Peut-être suffisamment pour composer toi même ton numéro, mais en tout cas pour savoir où chercher pour le faire.
Le meilleur conseil que je puisse te donner et de laisser ton projet de coté quelques jours et de suivre un cours en ligne et depuis le début même si ça te paraît bateau. Celui de Tahé est très bien https://tahe.developpez.com/dotnet/csharp/ en moyenne il faut 4 à 5 jours pour le suivre. Comme tu as posté ta première question fin aout et qu'aujourd'hui tu postes une question que tu n'aurais pas eue avec ce cours, ces quelques jours auraient déjà été rentabilisés.
DateTime maDate = DateTime.Now;
//si tu as besoin des faire des calculs avec l'année
int annee = maDate.Year;
Console.WriteLine("Année en entier {0}", annee);
int annee2chiffres = (annee % 1000) % 100; //on divise par 1000 et on garde le reste pour 2020, il reste 20, pour 1990, il reste 990, ensuite on divise par 100 et on garde le reste pour 20, il reste 20, pour 990, il reste 90
Console.WriteLine("Année deux chiffres {0}", annee2chiffres);
//si tu veux juste afficher une information d'année
Console.WriteLine("Date en 2 chiffres, juste à l'affichage {0}", maDate.ToString("yy"));
Console.WriteLine("Date en 2 chiffres, juste à l'affichage 2 {0:yy}", maDate);
//enfin composer un numéro
int monNumero = 1234;
Console.WriteLine("Numéro {0:yy}-{1:000000}", maDate, monNumero);
Whismeril
Messages postés18279Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention17 mars 2023621 5 oct. 2020 à 11:38
Bonjour
En fait, l’expérience a montré que si on dit gentiment.
« Au lieu de perdre du temps à chercher et à poser des questions simples apprend les bases » 99% des demandeurs s’en moquent. Et repose quelques jour plus tard une question où le manque de bases est flagrant.
La méthode un peu plus incisive fait réagir ceux qui ont l’amour propre. C’est ton cas manifestement.
Et, si tu es dans le 1% qui aurait compris gentiment, désolé.