OVH Cloud OVH Cloud

truc bizarre avec les datetime

2 réponses
Avatar
laurent
bonjour,
je constate des choses bizarres que je ne m'explique pas avec l'utilisation
des datetime, je viens voir si quelqu'un peut m'expliquer ou me dire ce que
je fais mal.

je fais ca :

datetime _valeur;
_valeur = monObjet.maDate;
_valeur.addminutes(5);

rien de plus simple...! mais le addminutes ne fait rien... pour que ca
marche je dois faire ca !

_valeur = cultureinfo.invariantculture.calendar.addminutes(_valeur,5)

alors que si on fait :
_valeur = datetime.now.addminutes(5);
ca marche...

je me suis dit : "tiens il faut définir un calendar à _valeur"
j'ai donc fait :

datetime _valeur;
_valeur = new datetime;(monObjet.maDate.year,... .month,...,cultureinfo. ...
.calendar);
_valeur.addminutes(5);

et ca marche pas !!!

alors je comprends plus rien !!!

alors en attendant je fais le code qui marche mais je me dis que c'est peut
etre pas très propre alors si quelqu'un a plus propre ou une explication à
ces faits bizarre, merci de me dire quoi !

bon dév!

2 réponses

Avatar
Mehdi
On Thu, 2 Mar 2006 02:32:03 -0800, laurent wrote:

je constate des choses bizarres que je ne m'explique pas avec l'utilisation
des datetime, je viens voir si quelqu'un peut m'expliquer ou me dire ce que
je fais mal.

je fais ca :

datetime _valeur;
_valeur = monObjet.maDate;
_valeur.addminutes(5);



J'avoue n'avoir pas tout compris a ton post mais en tout cas, la doc
indique noir sur blanc que AddMinutes no modifie pas l'instance sur
laquelle elle est appelée mais retourne un nouveau DateTime a la place:
"This method does not change the value of this DateTime. Instead, a new
DateTime is returned whose value is the result of this operation."

Donc ton code fonctionne comme prévu: il ne fait rien vu que tu ne récupere
pas la valeur de retour de AddMinutes. Si tu veux avoir le résultat de
l'opération AddMinutes, il te faut le récupérer.

D'une maniere générale, lorsqu'une méthode de la BCL a l'air de faire des
trucs bizarres, place le curseur sur la méthode, appuie sur F1 et dans 99%
des cas la réponse est la.
Avatar
laurent
autant pour moi !
j'ai pas été très malin sur ce coup là !!!
que ca me serve de leçon !

le pire c'est que j'ai fait F1, et je n'ai pas pensé à récupérer le résultat

et oui, comme souvent, on cherche compliqué alors que la solution est très
simple !

en tout cas, merci pour ta réponse


"Mehdi" a écrit :

On Thu, 2 Mar 2006 02:32:03 -0800, laurent wrote:

> je constate des choses bizarres que je ne m'explique pas avec l'utilisation
> des datetime, je viens voir si quelqu'un peut m'expliquer ou me dire ce que
> je fais mal.
>
> je fais ca :
>
> datetime _valeur;
> _valeur = monObjet.maDate;
> _valeur.addminutes(5);

J'avoue n'avoir pas tout compris a ton post mais en tout cas, la doc
indique noir sur blanc que AddMinutes no modifie pas l'instance sur
laquelle elle est appelée mais retourne un nouveau DateTime a la place:
"This method does not change the value of this DateTime. Instead, a new
DateTime is returned whose value is the result of this operation."

Donc ton code fonctionne comme prévu: il ne fait rien vu que tu ne récupere
pas la valeur de retour de AddMinutes. Si tu veux avoir le résultat de
l'opération AddMinutes, il te faut le récupérer.

D'une maniere générale, lorsqu'une méthode de la BCL a l'air de faire des
trucs bizarres, place le curseur sur la méthode, appuie sur F1 et dans 99%
des cas la réponse est la.