2009-07-19 5 views
0

Quelle est la façon la plus élégante d'obtenir les éléments suivants:Obtenez les 4 prochains mois dans une chaîne formatée

A partir de la date d'aujourd'hui, le retour d'une dénombrable qui serait la suivante:

1er Juillet du 15 Juillet 1er Août du 15 Août 1er Septembre 15 Septembre 1er Octobre du 15 Octobre

devrait représenter des choses comme si elle est la fin de la année, alors il va Décembre 15 Janvier 1st.

Répondre

7

Votre titre vous demandait une chaîne de caractères, mais le texte de la question demandait une énumération. Lequel est-ce?

Quoi qu'il en soit, voici le dénombrable:

public IEnumerable<DateTime> GetPaymentDates() 
{ 
    DateTime first = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1); 
    DateTime fifteenth = first.AddDays(14); 

    for (int i=0;i<4;i++) 
    { 
     yield return first; 
     yield return fifteenth; 

     first = first.AddMonths(1); 
     fifteenth = first.AddDays(14); 
    } 
} 

ou une version qui renvoie les chaînes:

public IEnumerable<string> GetPaymentDates() 
{ 
    DateTime current = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1); 

    for (int i=0;i<4;i++) 
    { 
     yield return current.ToString("MMMM 1st"); 
     yield return current.ToString("MMMM 15th"); 

     current = current.AddMonths(1); 
    } 
} 
+0

+1. joli! .... –

+0

+1, ouais c'est très intelligent. – jkeys

+0

juste génial, merci patron! – Scott

Questions connexes