Obtenir le nombre de jours dans un mois

136

J'ai une comboBox avec tous les mois.

Ce que j'ai besoin de savoir, c'est le nombre de jours dans le mois choisi.

var month = cmbMonth.SelectedIndex + 1;
DateTime date = Convert.ToDateTime(month);

Donc, si un utilisateur sélectionne janvier, je dois enregistrer 31 dans une variable.

Dharman
la source

Réponses:

298

Vous voulez DateTime.DaysInMonth:

int days = DateTime.DaysInMonth(year, month);

Évidemment, cela varie d'une année à l'autre, car parfois février a 28 jours et parfois 29. Vous pouvez toujours choisir une année particulière (bissextile ou non) si vous voulez la "fixer" à une valeur ou à une autre.

Jon Skeet
la source
31

Utilisez System.DateTime.DaysInMonth , à partir de l'exemple de code:

const int July = 7;
const int Feb = 2;

// daysInJuly gets 31.
int daysInJuly = System.DateTime.DaysInMonth(2001, July);

// daysInFeb gets 28 because the year 1998 was not a leap year.
int daysInFeb = System.DateTime.DaysInMonth(1998, Feb);

// daysInFebLeap gets 29 because the year 1996 was a leap year.
int daysInFebLeap = System.DateTime.DaysInMonth(1996, Feb);
Petrus Theron
la source
4

Pour trouver le nombre de jours dans un mois, la classe DateTime fournit une méthode «DaysInMonth (int year, int month)». Cette méthode renvoie le nombre total de jours dans un mois spécifié.

public int TotalNumberOfDaysInMonth(int year, int month)
    {
        return DateTime.DaysInMonth(year, month);
    }

OU

int days = DateTime.DaysInMonth(2018,05);

Sortie: - 31

Meenakshi Rana
la source
1
 int days = DateTime.DaysInMonth(int year,int month);

ou

 int days=System.Globalization.CultureInfo.CurrentCulture.Calendar.GetDaysInMonth(int year,int month);

vous devez passer l'année et le mois, car les intjours du mois seront de retour sur l'année et le mois de currespoting

Salim Darjaan
la source
1

Je l'ai fait calculer les jours dans le mois à partir du mois et de l'année sélectionnés par datetimepicker, et j'ai modifié le code dans datetimepicker1 pour renvoyer le résultat dans une zone de texte avec ce code

private void DateTimePicker1_ValueChanged(object sender, EventArgs e)
{
    int s = System.DateTime.DaysInMonth(DateTimePicker1.Value.Date.Year, DateTimePicker1.Value.Date.Month);

    TextBox1.Text = s.ToString();
} 
hady
la source
1
  int month = Convert.ToInt32(ddlMonth.SelectedValue);/*Store month Value From page*/
  int year = Convert.ToInt32(txtYear.Value);/*Store Year Value From page*/
  int days = System.DateTime.DaysInMonth(year, month); /*this will store no. of days for month, year that we store*/
JIYAUL MUSTAPHA
la source
-3
  • int days = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);


si vous voulez trouver des jours de cette année et du mois actuel, c'est mieux

Bilal Ch
la source