2010-10-12 9 views
0

Supposons que le mois en cours est "Oct". Je veux que cela va ajouter un mois dans le mois en cours i.e il montrera "Nov". Pour cela mon code est écrit ci-dessous mais il donne une exception que la chaîne d'entrée n'était pas dans un format correct.Comment ajouter un mois au mois en cours?

Alors s'il vous plaît corriger le code?

if (Convert.ToInt32(ddlMonth.SelectedIndex) <= Convert.ToInt32(DateTime.Now.AddMonths(1).ToString())) 
      { 
       TotalBalanceUptoSelectedPreviousMonth(); 
      } 
+3

Essayez d'écrire 'DateTime.Now.AddMonths (1) .toString()' à la console de débogage - Est-ce ce que vous attendez? – Douglas

+1

+1 sur le commentaire pour la promotion de la découverte de soi –

Répondre

4

Cela devrait probablement travailler:

if (Convert.ToInt32(ddlMonth.SelectedIndex) 
    <= Convert.ToInt32(DateTime.Now.AddMonths(1).ToString("M"))) 

    TotalBalanceUptoSelectedPreviousMonth(); 

Cependant, il semble plus simple comme ceci:

if (Convert.ToInt32(ddlMonth.SelectedIndex) <= DateTime.Now.AddMonths(1).Month) 
    Total...(); 
+1

Si c'est Décembre alors DateTime.Now.AddMonths (1) .Month renvoie 1 car le mois a été changé en Janvier alors que DateTime.Now.Month +1 renvoie 13. –

+0

Merci. Je suppose que je n'y ai pas pensé. Je vais modifier en conséquence. –

+0

De bonnes choses, le vote à rebours annulé. –

2

Je vais aller sur une branche et dire que c'est ce que vous cherchez:

if(ddlMonth.SelectedIndex <= DateTime.Now.AddMonths(1).Month) 
{ 
    TotalBalanceUptoSelectedPreviousMonth(); 
} 

Au lieu d'obtenir la date comme une chaîne et la convertir, pourquoi ne pas utiliser la Month propriété de la structure DateTime (qui est déjà un nombre entier)?

(Oh ... et SelectedIndex est déjà un entier aussi bien, pas besoin de l'appel à convertir)

1

Vous devez utiliser DateTime.Now.AddMonths(1).Month.
De même, vous n'avez pas besoin d'utiliser la méthode ToString enveloppée dans une méthode Convert.ToInt32, car il s'agit déjà d'un entier.

2
Convert.ToInt32(DateTime.Now.AddMonths(1).ToString()) 

donne probablement l'exception depuis DateTime.Now.AddMonths (1) Valeur .ToString() ne peut être converti Int32.

Questions connexes