Obtener número de días en un mes

135

Tengo un cuadro combinado con todos los meses en él.

Lo que necesito saber es la cantidad de días en el mes elegido.

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

Entonces, si un usuario selecciona enero, necesito guardar 31 en una variable.

Dharman
fuente

Respuestas:

297

Tu quieres DateTime.DaysInMonth:

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

Obviamente, varía según el año, ya que a veces febrero tiene 28 días y otras 29. Siempre puede elegir un año en particular (salto o no) si desea "fijarlo" a un valor u otro.

Jon Skeet
fuente
30

Use System.DateTime.DaysInMonth , del 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);
Petrus Theron
fuente
3

Para encontrar el número de días en un mes, la clase DateTime proporciona un método "DaysInMonth (int year, int month)". Este método devuelve el número total de días en un mes específico.

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

O

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

Salida: - 31

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

o

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

tiene que pasar año y mes, ya que los intdías del mes volverán al año y mes en curso

Salim Darjaan
fuente
0

Hice que calcule días en el mes a partir de datetimepicker seleccionado mes y año, 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();
} 
hady
fuente
0
  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
fuente
-4
  • int days = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);


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

Bilal Ch
fuente