2011-01-28 15 views
69

Tengo un comboBox con todos los meses en él.Obtener el número de días en un mes

Lo que necesito saber es el número de días en el mes elegido.

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

Así que si un usuario selecciona enero, necesito guardar 31 en una variable. Gracias.

Respuesta

170

¿Quieres DateTime.DaysInMonth:

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

Obviamente que varía según el año, ya que a veces Febrero tiene 28 días y, a veces 29. Siempre se puede escoger un determinado año (bisiesto o no) si quiere "arreglar" a un valor u otro.

23

Uso System.DateTime.DaysInMonth, el ejemplo de código:

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); 
-3
  • int days = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);


si quieren encontrar días en este año y el mes actual, entonces este es el mejor

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

o

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

usted tiene que pasar el año y el mes como int continuación días en el mes serán de vuelta en currespoting año y mes

0

lo hice calcular días en el mes de datetimepicker mes y año seleccionado, y yo, pero el código en datetimepicker1 textchanged para devolver el resultado en un cuadro de texto con este código

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