Vous ne serez pas en mesure d'obtenir un TimeSpan
, en raison d'un "mois" est une variable de l'unité de mesure. Vous devrez calculer vous-même, et vous devrez comprendre exactement comment vous voulez qu'il fonctionne.
Par exemple, les dates comme July 5, 2009
et August 4, 2009
le rendement d'un mois ou zéro mois de différence? Si vous dites qu'il devrait donner l'un, alors qu' July 31, 2009
et August 1, 2009
? Est que un mois? Est-ce simplement la différence de l' Month
valeurs pour les dates, ou est-il plus lié à une réelle laps de temps? La logique de la détermination de l'ensemble de ces règles est non-trivial, de sorte que vous aurez à déterminer votre propre et de mettre en œuvre l'algorithme approprié.
Si tout ce que vous voulez, c'est tout simplement une différence dans les mois--ignorant complètement les valeurs de date, vous pouvez utiliser ceci:
public static int MonthDifference(this DateTime lValue, DateTime rValue)
{
return (lValue.Month - rValue.Month) + 12 * (lValue.Year - rValue.Year);
}
Notez que cette fonction retourne une différence relative, ce qui signifie que si rValue
est plus grand que lValue
, alors la valeur de retour sera négatif. Si vous voulez une différence absolue, vous pouvez utiliser ceci:
public static int MonthDifference(this DateTime lValue, DateTime rValue)
{
return Math.Abs((lValue.Month - rValue.Month) + 12 * (lValue.Year - rValue.Year));
}