2010-05-14 6 views
1

Je dois récupérer la date actuelle dans asp.net et ensuite comparer avec la date donnée par l'utilisateur dans textbox1.text (format mm/jj/aaaa), si la date donnée est plus grande que la date actuelle, puis erreur d'ajouter 4months2days avec cette date et l'afficher dans textbox2.text.date de rétractation dans asp.net

aide-moi s'il vous plaît, vous remercier les gars,

Indranil

+4

Est-ce devoir? – Guffa

+0

pas exactement..im faire un projet pour un client et la soumission est la semaine prochaine alors essayez juste de conclure Asap. – piku

Répondre

0
DateTime dateToCompare; 
if(DateTime.TryParse(textbox1.text, out dateToCompare)) 
{ 
    DateTime current = DateTime.Now; 
    TimeSpan ts = current - dateToCompare; 
    if (ts.Ticks < 0) 
    { 
      //display error 
    } 
    else 
      textbox2.text = dateToCompare.AddMonths(4).AddDays(2).ToString("mm/dd/yyyy"); 
    } 
} 
0

Je ne vais pas écrire votre code, mais dans .NET vous pouvez utiliser ToString pour spécifier un format de date, pour obtenir une TryParse date d'une chaîne. Et AddDays, AddMonths etc pour manipuler une date.

En javascript, il n'existe pas de moyen simple de formater la sortie, mais vous pouvez utiliser getMonth etc. pour afficher les valeurs individuelles et concaténer une chaîne à partir de cela. Vous pouvez utiliser une combinaison de getDate et setDate pour manipuler des dates. Il corrige automatiquement les nouveaux mois, c'est-à-dire que si vous exécutez myDate.setDate(myDate.getDate() + 60), il augmentera de 60 jours; vous ne finirez pas avec une date bizarre comme le 74 mai.

Gardez à l'esprit que les mois en javascript sont basés sur zéro, à savoir Janvier est 0, Février est 1, etc.

Vous pouvez créer une nouvelle date en javascript par new Date(yy, mm, dd) ou new Date('yy/mm/dd'), de sorte que vous pouvez manipuler chaîne de une entrée et créer une date à partir de cela.

Pour comparer deux dates, vous pouvez les soustraire l'une de l'autre et obtenir la différence en millisecondes.

if (dateA - dateB < 0) // dateB is greater than dateA (occurrs later) 

et

var diff = Math.abs(dateA - dateB) // difference in ms, no matter which date is greater 
+0

La différence est exprimée en ticks, et non en millisecondes, car la soustraction d'une date à une autre date renvoie un TimeSpan. Vous auriez besoin d'utiliser la propriété TotalMilliseconds du TimeSpan pour trouver la différence dans ms –

+0

@Daniel Dyson: ces dernières remarques concernaient js, pas .net –

+0

Ah oui, donc ils l'étaient. Je me demandais comment quelqu'un avec votre réputation pourrait faire cette erreur. :) –

0
DateTime date1 = new DateTime(); 
if(DateTime.TryParse(textbox1.text, out date1)){ 
      if (date1.CompareTo(DateTime.Now) > 0) 
      { 
       //Error code here 
      }else 
      { 
       textbox2.text = date1.AddMonths(4).AddDays(2); 
      } 
}