2011-06-07 3 views
1

Ok, je ne sais pas trop comment aborder cela ... J'utilise un CMS Open Source (Umbraco) et je veux créer une macro qui fait tourner le contenu toutes les trois semaines. Donc, fondamentalement, j'ai trois documents et je veux montrer le document 1, 2 ou 3 chaque semaine (rotation totale de trois semaines) sur la base d'une date de début donnée ... Des suggestions? Je crains de travailler avec des dates en C#!Calcul de l'horaire rotatif hebdomadaire

Je ne ai pas besoin de code spécifique autre qu'une fonction C# qui recrache la semaine 1, 2 ou 3 date de début donné ...

Répondre

0

Cela fonctionne, bien que vous pouvez régler si vous voulez toujours les semaines pour commencer un jour donné (par exemple dimanche).

 DateTime startDate = new DateTime(2011, 1, 1).Date; 
     DateTime now = DateTime.Now.Date; 
     int days = (int)now.Subtract(startDate).TotalDays; 
     int weeks = days/7; 
     Console.WriteLine((weeks % 3) + 1); 
+0

Cela fonctionne !!! Merci!!! – rjbullock

0
DateTime begin = new DateTime(2011, 03, 07); 
TimeSpan timeSpan = DateTime.Now - begin; 
switch (((int) timeSpan.TotalDays/7) % 3) 
{ 
    case 0: 
     break; 
    case 1: 
     break; 
    case 2: 
     break; 
    default: 
     throw new Exception(); 
} 

Le premier «/7 » vous donne le numéro de la semaine, le « % 3 » vous indique si vous êtes dans le 1er, 2e ou 3e.

+0

Ah! Je pensais que vous deviez utiliser une fonction de mod en quelque sorte, mais honnêtement, ma connaissance des fonctions mathématiques est ZERO. ;-) Je vais essayer, cependant. Merci pour l'idée! – rjbullock

+0

Ouais, cela ne semble pas fonctionner ... Avec une date de début du 30/05/11 et une date de fin du 6/12/11 (via une variable I set), il retourne 0 quand il devrait retourner 1. – rjbullock

+0

Parce que pensez-y ... 7% 7 renvoie 0. 14% 7 renvoie 0. 21% 7 renvoie 0, etc ... – rjbullock