none
Loop para fechas en una lista RRS feed

  • Pregunta

  • Buen día

    Tengo creada una lista con diferentes fechas que seleccione de un calendario en asp.net y ahora quiero que al presionar un botón me muestre las fechas separadas por mes, por ejemplo:

    1,2,3 de Julio y 3 de Agosto 

    ese es un ejemplo de las fechas seleccionadas que ya guarde en una list<> pero ahora no se como hacer que las escriba por separado. 

    Gracias. 

    martes, 23 de julio de 2019 16:40

Todas las respuestas

  • Hola Markdirtyboy,

    Para obtener las fechas seleccionadas del 'Calendar' solo debes utilizar la propiedad SelectedDates, el cual retornará una colección de ellas.

    Puedes utilizar Linq para poder agrupar la colección por mes, luego obtendrías una colección de días y una Key que sería el Mes.

    var selectedDates = Calendar1.SelectedDates.OfType<DateTime>()
                                    .GroupBy(x => x.Month)
                                    .Select(x => new {
                                        Mes = x.Key,
                                        Dias = x.ToList()
                                    });


    Dónde la propiedad Mes (es un valor de tipo int que retornará el mes) y la propiedad Dias (retornará una lista de los días). Un ejemplo sencillo de como visualizarlo sería:

    //Recorremos la variable
    foreach (var dates in selectedDates)
    {
        //Mostramos el Mes
        TextBox1.Text += $"{CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(dates.Mes)}\n";
    
        //Mostramos los días del Mes
        foreach (var d in dates.Dias)
        {
            TextBox1.Text += $"{d.ToShortDateString()}\n";
        }
    }

    Resultado:

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    martes, 23 de julio de 2019 17:51
  • Muchas gracias y para el caso de que quiera incluir el año solamente pondría primero en lugar de Mes el Año?

    Marco

    martes, 23 de julio de 2019 18:07