Bonjour,
Donc tu utilises TDateTime de Embarcadero.
Je sais que Embarcadero oblige à allouer les instances de la majorité de ses types avec new, mais ce n'est pas le cas de TDateTime : tu peux allouer directement les objets de ce type dans la pile. Ce sera plus simple (pas besoin d'appeler delete) et aussi un peu plus performant.
A part ça, la ligne de code suivante est erronée :
TDateTime * dtLundi = dtToday - n;
Puisque dtToday est un pointeur, alors dtToday - n est aussi un pointeur qui pointe n emplacements avant dtToday, comme si dtToday pointait vers un élément de tableau. Du coup, ton dtLundi est un pointeur qui pointe vers n'importe quoi.
Même remarque pour la ligne suivante avec dtDimanche.
A part ça, même au niveau des indices, le code est faux. TDateTime.DayOfWeek() retourne un entier entre 1 et 7. Si on est dimanche, il retourne 1.
Partager