none
Mostrar solo mes en combo RRS feed

  • Pregunta

  • Hola saludos cordiales a todos.

    Quiero agregar a un combobox un texto y el mes en curso, ya lo logre pero esta mostrando la fecha completa es decir:

    Texto + Mes/Día/Año y hora actuals.

    Yo solo quiero que me muestre:

    Texto + Mes/Día/Añp.

    Como lo puedo conseguir estoy usando este codigo:

    Dim formatInfo = System.Globalization.DateTimeFormatInfo.CurrentInfo
            For i As Integer = 1 To Date.Today.Month
                Dim monthName = formatInfo.GetMonthName(i)
                CboList.Items.Add("TESLA " & (Now) & (monthName))
                CboList.Items.Add("JACINTO" & (Now) & (monthName))
                CboList.Items.Add("PEDRO" & (Now) & (monthName))
                CboList.Items.Add("CARLOS" & (Now) & (monthName))
                CboList.Items.Add("RAMIRO" & (Now) & (monthName))
                CboList.Items.Add("FELIPE" & (Now) & (monthName))
            Next

    Espero me puedan ayudar.

    Saludos

    DS


    Aprendiz de todos maestro de nadie. Saludos desde Cd. Juarez Chihuahua Mexico. DS.

    miércoles, 12 de octubre de 2016 20:05

Respuestas

  • Hola

    Si tu variable es de tipo date puedes mandarle un formato con el ToString

    string s = System.DateTime.Now.ToString("dd/M/yyyy", CultureInfo.InvariantCulture)

    El formato tu lo puedes definir si es día mes año, año mes día, con guion medio o una diagonal.

    espero te sea útil

    Saludos

    • Propuesto como respuesta Joel C. Naupa Crispín miércoles, 12 de octubre de 2016 20:54
    • Marcado como respuesta Dany Solis miércoles, 12 de octubre de 2016 22:13
    miércoles, 12 de octubre de 2016 20:16
  • Hola Dany Solis,

    También puedes hacer uso del String.Format, dónde le aplicas el formato de salida.

    CboList.Items.Add(String.Format("{0} {1:MM/dd/yyyy} {2}", "TESLA ", Now, monthName))
    'Resultado (Primera iteración): TESLA  10/12/2016 enero

    Además, si te das cuenta estás repitiendo código, lo cuál puedes omitir si agregas los nombres a un arreglo.

            Dim nombres() As String = {"TESLA", "JACINTO", "PEDRO", "CARLOS", "RAMIRO", "FELIPE"}
    
            Dim formatInfo = DateTimeFormatInfo.CurrentInfo
    
            For i As Integer = 1 To Date.Today.Month
                Dim monthName = formatInfo.GetMonthName(i)
                For Each nn In nombres
                    CboList.Items.Add(String.Format("{0} {1:MM/dd/yyyy} {2}", nn, Now, monthName))
                Next
            Next

    Teniendo el mismo resultado.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta Dany Solis miércoles, 12 de octubre de 2016 22:13
    miércoles, 12 de octubre de 2016 21:02
  • Hola Dany Solis,

    Pero mira, en el ejemplo que muestras no mandas a nombrar el nombre del Mes.

    Por lo que esto sería más que suficiente :

            Dim nombres() As String = {"teresa", "jacinto", "PEDRO"}
    
            For Each nn In nombres
                CboList.Items.Add(String.Format("{0} {1:MMM/dd/yyyy}", nn, Now).ToUpper)
            Next

    ToUpper : Para poner en mayúsculas.

    Resultado :

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI


    miércoles, 12 de octubre de 2016 22:46

Todas las respuestas

  • Hola

    Si tu variable es de tipo date puedes mandarle un formato con el ToString

    string s = System.DateTime.Now.ToString("dd/M/yyyy", CultureInfo.InvariantCulture)

    El formato tu lo puedes definir si es día mes año, año mes día, con guion medio o una diagonal.

    espero te sea útil

    Saludos

    • Propuesto como respuesta Joel C. Naupa Crispín miércoles, 12 de octubre de 2016 20:54
    • Marcado como respuesta Dany Solis miércoles, 12 de octubre de 2016 22:13
    miércoles, 12 de octubre de 2016 20:16
  • Hola Dany Solis,

    También puedes hacer uso del String.Format, dónde le aplicas el formato de salida.

    CboList.Items.Add(String.Format("{0} {1:MM/dd/yyyy} {2}", "TESLA ", Now, monthName))
    'Resultado (Primera iteración): TESLA  10/12/2016 enero

    Además, si te das cuenta estás repitiendo código, lo cuál puedes omitir si agregas los nombres a un arreglo.

            Dim nombres() As String = {"TESLA", "JACINTO", "PEDRO", "CARLOS", "RAMIRO", "FELIPE"}
    
            Dim formatInfo = DateTimeFormatInfo.CurrentInfo
    
            For i As Integer = 1 To Date.Today.Month
                Dim monthName = formatInfo.GetMonthName(i)
                For Each nn In nombres
                    CboList.Items.Add(String.Format("{0} {1:MM/dd/yyyy} {2}", nn, Now, monthName))
                Next
            Next

    Teniendo el mismo resultado.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta Dany Solis miércoles, 12 de octubre de 2016 22:13
    miércoles, 12 de octubre de 2016 21:02
  • Hola Dany Solis,

    También puedes hacer uso del String.Format, dónde le aplicas el formato de salida.

    CboList.Items.Add(String.Format("{0} {1:MM/dd/yyyy} {2}", "TESLA ", Now, monthName))
    'Resultado (Primera iteración): TESLA  10/12/2016 enero

    Además, si te das cuenta estás repitiendo código, lo cuál puedes omitir si agregas los nombres a un arreglo.

            Dim nombres() As String = {"TESLA", "JACINTO", "PEDRO", "CARLOS", "RAMIRO", "FELIPE"}
    
            Dim formatInfo = DateTimeFormatInfo.CurrentInfo
    
            For i As Integer = 1 To Date.Today.Month
                Dim monthName = formatInfo.GetMonthName(i)
                For Each nn In nombres
                    CboList.Items.Add(String.Format("{0} {1:MM/dd/yyyy} {2}", nn, Now, monthName))
                Next
            Next

    Teniendo el mismo resultado.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    Hola Joel, gracias por la ayuda.

    En el arreglo como puedo lograr que no me duplique los Items ya que me esta repitiendo los Items segun el Mes en el ue me encuentre.

    Ejemplo:

    JACINTO me lo repite 10 veces al igual que los demas asi:

    JACINTO Oct/12/2016

    JACINTO Oct/12/2016

    JACINTO Oct/12/2016

    JACINTO Oct/12/2016

    JACINTO Oct/12/2016

    JACINTO Oct/12/2016

    JACINTO Oct/12/2016

    JACINTO Oct/12/2016

    JACINTO Oct/12/2016

    JACINTO Oct/12/2016


    Aprendiz de todos maestro de nadie. Saludos desde Cd. Juarez Chihuahua Mexico. DS.

    miércoles, 12 de octubre de 2016 22:17
  • Hola Dany Solis,

    Bueno, eso es lo que realmente hace tu código, solo traté de minimizarlo.

    JACINTO Oct/12/2016 enero
    JACINTO Oct/12/2016 febrero
    JACINTO Oct/12/2016 marzo ....

    Cómo deseas que muestre el resultado, puedes mostrar un ejemplo de como sería lo ideal ? Ya que que al usar Now siempre obtendrá la fecha actual.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    miércoles, 12 de octubre de 2016 22:34
  • Lo tengo escrito en papel pero seria algo asi: Segun el Mes en el que me encuentre concatenar el Texto y la fecha actual:

    TERESA OCT/12/2016
    JACINTO OCT/12/2016
    PEDRO OCT/12/2016

    Espero verme explicado....! Saludos DS


    Aprendiz de todos maestro de nadie. Saludos desde Cd. Juarez Chihuahua Mexico. DS.


    • Editado Dany Solis miércoles, 12 de octubre de 2016 22:46
    miércoles, 12 de octubre de 2016 22:42
  • Lo tengo escrito en papel pero seria algo asi: Segun el Mes en el que me encuentre concatenar el Texto y la fecha actual: Teresa Oct/12/2016 Jacinto Oct/12/2016 Pedro Oct/12/2016 Y asi mostrarlos en el combo. Espero verme explicado....! Saludos DS

    Aprendiz de todos maestro de nadie. Saludos desde Cd. Juarez Chihuahua Mexico. DS.

    Acabo de ver tu caso y lo que no entiendo es el sentido de la instrucción FOR que va desde el mes 1 al mes actual. De ser el caso, que día colocas en cada mes, ¿el día actual?, de ser así no tiene sentido el resultado de la función NOW con lo que concatenas a la derecha.

    Creo que debes de explicar con algo mas de detalle.

    miércoles, 12 de octubre de 2016 22:45
  • Hola Dany Solis,

    Pero mira, en el ejemplo que muestras no mandas a nombrar el nombre del Mes.

    Por lo que esto sería más que suficiente :

            Dim nombres() As String = {"teresa", "jacinto", "PEDRO"}
    
            For Each nn In nombres
                CboList.Items.Add(String.Format("{0} {1:MMM/dd/yyyy}", nn, Now).ToUpper)
            Next

    ToUpper : Para poner en mayúsculas.

    Resultado :

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI


    miércoles, 12 de octubre de 2016 22:46
  • Gracias con esta ultima aportación que me hace soluciono el problema.

    Muchas gracias por tu ayuda.

    Saludos

    DS


    Aprendiz de todos maestro de nadie. Saludos desde Cd. Juarez Chihuahua Mexico. DS.

    jueves, 13 de octubre de 2016 13:55