Pobieranie liczby dni w miesiącu

141

Mam comboBox ze wszystkimi miesiącami.

To, co muszę wiedzieć, to liczba dni w wybranym miesiącu.

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

Więc jeśli użytkownik wybierze styczeń, muszę zapisać 31 w zmiennej.

Dharman
źródło

Odpowiedzi:

309

Chcesz DateTime.DaysInMonth:

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

Oczywiście zmienia się to w zależności od roku, ponieważ czasami luty ma 28 dni, a czasami 29. Zawsze możesz wybrać konkretny rok (skokowy lub nie), jeśli chcesz „ustawić” go na jedną lub drugą wartość.

Jon Skeet
źródło
31

Użyj System.DateTime.DaysInMonth , z przykładowego kodu:

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
źródło
7

Aby znaleźć liczbę dni w miesiącu, klasa DateTime udostępnia metodę „DaysInMonth (int rok, int month)”. Ta metoda zwraca całkowitą liczbę dni w określonym miesiącu.

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

LUB

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

Wyjście: - 31

Meenakshi Rana
źródło
1
 int days = DateTime.DaysInMonth(int year,int month);

lub

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

musisz mijać rok i miesiąc, ponieważ intwtedy dni w miesiącu będą zwracane w bieżącym roku i miesiącu

Salim Darjaan
źródło
1

Zrobiłem to, aby obliczyć dni w miesiącu z wybranego miesiąca i roku datetimepicker1, ale kod w tekście datetimepicker1 został zmieniony, aby zwracać wynik w polu tekstowym z tym kodem

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
źródło
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*/
Kod
źródło
-3
  • int days = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);


jeśli chcesz znaleźć dni w tym roku i w bieżącym miesiącu, to jest najlepsze

Bilal Ch
źródło