6
votes

Comment répertorier le nombre de jours pendant un mois pour une année spécifique?

Comment répertorier combien de jours pendant un mois pour une année spécifique en JavaScript?

comme nous le savons 30 jours ont septembre, avril, juin et novembre. Tous les autres ont 31, Sauf février, Qui a 28 jours clairs, Et 29 dans chaque année bissextile.

J'aurais besoin de prendre le compte d'une année bissextile. Connaissez-vous une manière native de caresser ... ou peut-être une bibliothèque .. Pourriez-vous en suggérer un?


0 commentaires

4 Réponses :


9
votes

Essayez ceci

function daysInMonth(m, y)

{
  m=m-1; //month is zero based...
  return 32 - new Date(y, m, 32).getDate();
}


1 commentaires

C'est joli nifty, mais est-il garanti de toujours travailler, dans toutes les implémentations? Vous vous demandez simplement que Stricto Senso 32 est une valeur non valide pour le champ Mois.



3
votes

Cela fonctionnera trop en supposant que janvier = 1, février = 2 ... DEC = 12 xxx

violon


4 commentaires

non ce n'est pas. nouvelle date (2000, 1, 0) .getDate () // 31 et février 2000 a 29 jours


@ROYINAMIR Vous mettez 1 au lieu de 2 Je crois que le février est le 2ème mois d'une année jsfiddle.net/efuam/2


d'accord. Parce que je sais ce mois-ci est à base de zéro si février est 1. Vous devez le mentionner dans votre réponse.


Je vais ajouter ça maintenant. Merci



0
votes

Il y a probablement des moyens indigènes de la découvrir, mais je pense que c'est bien de savoir que l'algorithme de l'année saut n'est pas si difficile à mettre en œuvre par soi-même:

function isLeapYear(year) {
    if (year % 400 === 0) {
        return true;
    } else if (year % 100 === 0) {
        return false;
    } else if (year % 4 === 0) {
        return true;
    }
    return false;
}


0 commentaires

3
votes

Vous pourriez, bien sûr, écrivez simplement une fonction basée sur ce que vous savez déjà, associé à la logique pour les années de saut: xxx

divisible par 4 mais pas divisible par 100 sauf si divisible par 400 sont des années saut.


0 commentaires