FAQ ASP.NET/C#

FAQ ASP.NET/C#Consultez toutes les FAQ
Nombre d'auteurs : 39, nombre de questions : 371, dernière mise à jour : 15 juin 2021
Sommaire→Coté serveur et C#→Manipulations des datesIl est fréquent d'encoder une date sous forme d'une chaîne de caractères. La plupart du temps, le développeur d'applications souhaitera manipuler un objet DateTime, c'est pourquoi la conversion (casting) est importante.
String maDateChaine = "03/06/2005 17:06:00";
DateTime maDate = DateTime.Parse(maDateChaine);Bien que ceci soit très simple, la question revient fréquemment...
TimeSpan diff = date1 - date2;Le TimeSpan permet de récupérer des durées au format heures, minutes, secondes.
On utilisera ceci, entre autres, pour connaître la durée d'un travail, la durée d'exécution d'une requête
et bien d'autres choses.
Lien : Comment savoir le temps nécessaire à l'exécution d'une requête ?
Une solution pour récupérer une date à partir d'indications telles que
- le jour de la semaine
- le numéro de la semaine
- l'année
par exemple: "Quelle est la date du mercredi de la semaine 45 de l'année 2005?"
Imaginons pour cela un formulaire simple avec :
1. 1 NumericUpDown "jourValue" pour les jours de la semaine (1-7)
2. 1 NumericUpDown "semaineValue" pour les semaines de l'année (1-52)
3. 1 TextBox "AnneeValue" pour l'année
4. 1 Label "resultat"
5. 1 bouton "Valider"
using System;
//...
private const string libelle = "Vous avez recherché : Le ";
//...
private void Valider_Click(object sender, EventArgs e)
{
//Verifier si la saisie est bien numérique
//Recuperer l'année saisie
int lannee = Convert.ToInt32(this.anneeValue.Text);
//Imposer une date référencée au 01/01/ de l'année
DateTime dateRef = new DateTime(lannee, 1, 1);
//Recuperer le choix de la semaine
double week = (double)this.semaineValue.Value;
//Ajuster le nombre de jours/semaine à la date référencée
if(week > 1)
dateRef = dateRef.AddDays((week - 1) * 7);
//Recuperer le choix du jour
double day = (double)this.jourValue.Value;
//Recuperer le jour de la semaine de la date référencée
int j = (int)dateRef.DayOfWeek;
//Ajuster en fonction de la difference des deux
if(j > day)
dateRef = dateRef.AddDays(-(j - day));
if(j < day)
dateRef = dateRef.AddDays(day - j);
//Afficher le resultat
resultat.Text = libelle;
resultat.Text += dateRef.ToLongDateString;
}


