2009-07-09 6 views

Répondre

1

Dans de nombreux langages, vous pouvez obtenir ceci en obtenant une valeur de date pour le zéro jour du mois suivant, puis en travaillant à partir de cela. Alors peut-être essayer:

var d:Date = new Date(2009,7,0); 
var day:Number=d.getDate(); 

Si cela ne fonctionne pas, vous pouvez obtenir le premier jour du mois suivant, et soustraire un jour

var millisecondsPerDay:int = 1000 * 60 * 60 * 24; 
var d:Date = new Date(2009,7,1); 
d.setTime(d.getTime() - millisecondsPerDay); 
var day:Number=d.getDate(); 
+0

Depuis que je ne serai pas toujours en cours d'exécution en Juillet, j'ai changé que pour \t \t var d: Date = nouvelle Date(); \t \t d.setMonth (d.getMonth() + 1); \t \t d.setDate (0); \t \t \t var jour: Number = d.getDate(); Laid mais ça marche. Je me demande s'il y a quelque chose de mieux ... peu importe. Merci, même si vous ressemblez à ce type de mon équipe de rugby qui me frappait au hasard. – stevedbrown

+0

Pourquoi calculer quelque chose de connu? Les LUT sont beaucoup plus rapides et plus propres ... – LiraNuna

+0

C'est quelque chose qui arrive une fois quand l'application se charge, pas tout le temps. Techniquement, les mois script d'action commencent à 1, mais je sais ce que vous voulez dire. Pour certaines applications, cela vaut la peine de faire des tableaux et parfois moins. Dans mon cas, la réponse calculée est bien, parfois il serait préférable de faire le tableau. – stevedbrown

0

Il n'y a que douze d'entre eux (et un spécial cas pour les années bissextiles) - ce ne serait pas si mal de simplement l'écrire.

+0

Techniquement, ce n'est pas une déclaration correcte. Une année bissextile est tous les 4 ans, sauf les limites du siècle qui sont divisibles par 4. Donc, vous avez raison, sauf les siècles qui sont divisibles par 4 sont des années bissextiles, ceux qui ne le sont pas ne le sont pas. par exemple 2000 était une année bissextile 1900 n'était pas, 2100 ne l'est pas. Cela devient important pour les dates loin dans le passé ou le futur. –

3
static public function getEndOfMonth(month:uint, isLeap:Boolean = false):uint 
{ 
    return [31, 28 + isLeap, 31, 30, 30, 31, 31, 30, 31, 30, 31][month]; 
} 

Vous pouvez ajouter un objet appelé Mois avec const uints, par exemple Month.JANUARY == 0 et ainsi de suite, encapsuler etc etc ...

+0

Je ne veux toujours pas écrire la logique de la date, mais merci pour le 110% ... +1 de toute façon. – stevedbrown

Questions connexes