2010-12-08 10 views

Répondre

4

Deux options;

1: trouver début de mois et comparer:

var monthStart = new DateTime(when.Year, when.Month, 1); 
if(someDate < monthStart) {...} 

2: comparer le mois et l'année

if(someDate.Year < when.Year || (someDate.Year == when.Year && 
         someDate.Month < when.Month)) {...} 

soit Conviendrait pour une méthode d'extension sur DateTime

+0

oh..j'ai raté une partie de la question, il est moins que sont égaux au mois actuel – Madhan

+0

deuxième travaille pour moi ... ..thnx Marc – Madhan

5

En tant que méthode d'extension:

public static bool IsBeforeStartOfCurrentMonth(this DateTime date) { 
    DateTime now = DateTime.Now; 
    DateTime startOfCurrentMonth = new DateTime(now.Year, now.Month, 1); 
    return date < startOfCurrentMonth; 
} 

Utilisation:

DateTime date = // some DateTime 
if(date.IsBeforeStartOfCurrentMonth()) { 
    // do something 
} 
+0

+1 Wierd - J'ai eu presque la même réponse * exacte, jusqu'aux noms des variables et tout. –

+0

@Andrew, peut-être lire beaucoup de code sur SO, un système de dénomination commune converge :) – Sebastian

2

Vous pouvez simplement comparez les valeurs Year et Month si les deux valeurs DateTime -

DateTime d1, d2; 
... 
d1.Year <= d2.Year && d1.Month < d2.Month;