2009-11-10 6 views
2

Ok, donc j'ai besoin de trouver la date de lundi cette semaine par programme.DateTime question dans VB.NET

Par exemple, pour cette semaine lundi était le 9, donc la date que j'ai besoin: 09/11/2009

Et quand nous roulons sur la semaine prochaine, il faut calculer: 16/11/2009

J'ai essayé de le faire moi-même mais je ne vois pas comment faire l'arithmétique, merci.

Répondre

4

C#:

date.AddDays(1 - (date.DayOfWeek == DayOfWeek.Sunday ? 7 : (int)date.DayOfWeek)); 

VB.NET:

date.AddDays(1 - IIf((date.DayOfWeek = DayOfWeek.Sunday), 7, date.DayOfWeek)) 
+0

Belle doublure là-bas. – cjk

+0

Quand j'utilise que j'obtiens beaucoup d'erreurs de syntaxe, et quand je le nettoie à ce que .NET pourrait accepter j'obtiens cette erreur: La valeur du type 'Date' ne peut pas être convertie en 'Entier' – Gordon

+0

C'est parce que c'est C# et pas vb.net – RobS

1
Dim thisMonday As Date = Now.AddDays((Now.DayOfWeek - 1) * -1).Date 

Si aujourd'hui est un dimanche, il donne le lundi suivant le cas contraire, donne le lundi cette semaine.

1
Return givenDate.AddDays(1 - CType(IIf((givenDate.DayOfWeek = DayOfWeek.Sunday), 7, givenDate.DayOfWeek), Double)) 

Si givenDate est un dimanche, au décompte à lundi précédent. Inclut un CType pour convertir le résultat IIf en Double pour fonctionner avec Option Strict On.