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
Il 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;
}