Получение количества дней в месяце


136

У меня есть comboBox со всеми месяцами в нем.

Что мне нужно знать, так это количество дней в выбранном месяце.

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

Поэтому, если пользователь выбирает январь, мне нужно сохранить 31 в переменной.

Ответы:


298

Вы хотите DateTime.DaysInMonth:

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

Очевидно, это зависит от года, так как иногда в феврале 28 дней, а иногда 29. Вы всегда можете выбрать конкретный год (високосный или нет), если хотите «исправить» его до того или иного значения.


31

Используйте System.DateTime.DaysInMonth из примера кода:

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);

4

Чтобы узнать количество дней в месяце, класс DateTime предоставляет метод «DaysInMonth (int year, int month)». Этот метод возвращает общее количество дней в указанном месяце.

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

ИЛИ

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

Выход: - 31


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

или

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

вы должны пропустить год и месяц, так как intтогда дни в месяце будут возвращаться в текущем году и месяце


1

Я заставил его вычислять дни в месяце из datetimepicker, выбранного месяца и года, и я, но код в тексте datetimepicker1 изменился, чтобы вернуть результат в текстовое поле с этим кодом

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();
} 

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*/

-3
  • int days = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);


если вы хотите найти дни в этом году и в текущем месяце, тогда это лучше всего

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.