Foros del Web » Programando para Internet » ASPX (.net) »

[SOLUCIONADO] Loop con meses del año

Estas en el tema de Loop con meses del año en el foro de ASPX (.net) en Foros del Web. Buena tarde... Como puedo hacer un loop con los meses del año? Tengo un ddl con los meses del año, otro ddl con varios años ...
  #1 (permalink)  
Antiguo 25/07/2013, 14:31
 
Fecha de Ingreso: noviembre-2003
Mensajes: 209
Antigüedad: 20 años, 5 meses
Puntos: 0
Loop con meses del año

Buena tarde...

Como puedo hacer un loop con los meses del año?

Tengo un ddl con los meses del año, otro ddl con varios años a partir del año actual y una txt donde el usuario debe de digitar la cantidad de meses.

En base al mes y año que el usuario escoja (siempre mayor o igual a la fecha actual), y la cantidad de meses que digite en el txt, el sistema calcule hasta que mes sea el final del "periodo"

por ejemplo:

Mes: Septiembre
Año: 2013
Cantidad meses: 8

El sistema debe de desplegar en un gridview:

Sep 2013 / Oct 2013 / Nov 2013 / Dic 2013 / Ene 2014 / Feb 2014 / Mar 2014 / Abr 2014

Por mostrar la info en el gridview no hay problema, el problema lo tengo cuando cambia de Dic 2013 a Ene 2014.

otro ejemplo:

Mes: Febrero
Año: 2014
Cantidad meses: 3

Feb 2014 / Mar 2014 / Abr 2014

Anexo el codigo que tengo:

Código ASP:
Ver original
  1. Dim mesIni As Integer = ddlMeses.SelectedValue
  2.             Dim anio As Integer = ddlAnios.SelectedValue
  3.             Dim cantMeses As Integer = tbMeses.Text
  4.  
  5.             Dim mesActual As Integer = Month(Date.Now)
  6.             Dim anioActual As Integer = Year(Date.Now)
  7.  
  8.             If mesIni >= mesActual And anio >= anioActual Then
  9.                 Dim dt As New DataTable
  10.                 Dim dr As DataRow
  11.                 Dim mesLetra As String
  12.  
  13.                 For i = 1 To cantMeses
  14.                     mesLetra = MonthName(mesIni, True)
  15.                     dt.Columns.Add(mesLetra)
  16.                     dr = dt.NewRow
  17.                     'dr(mesLetra) = "asads"
  18.                     dt.Rows.Add(dr)
  19.                     mesIni = mesIni + 1
  20.                 Next
  21.  
  22.                 gvDistribucion.DataSource = dt
  23.                 gvDistribucion.DataBind()
  24.  
  25.             Else


Cuando i es mayor a 12, es cuando brinca la liebre..... ejeeje

saludos y gracias
  #2 (permalink)  
Antiguo 26/07/2013, 13:33
 
Fecha de Ingreso: noviembre-2003
Mensajes: 209
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: Loop con meses del año

Hola a todos.....

Pues ayer por la noche tuve una flash o una vision de como hacer lo que requeria del loop con los meses del año..... a lo mejor porque los bulbos del cerebro ya estaban frescos... jejejeje...

Lo hice asi, esta muy simple pero en su momento no se me ocurria, se los dejo por si alguien le pasa:

Código ASP:
Ver original
  1. Dim mesIni As Integer = Month(tbMesAnio.Text)
  2.             Dim anio As Integer = Year(tbMesAnio.Text)
  3.             Dim cantMeses As Integer = tbMeses.Text
  4.  
  5.             Dim mesActual As Integer = Month(Date.Now)
  6.             Dim anioActual As Integer = Year(Date.Now)
  7.             Dim dr As DataRow
  8.             If anio >= anioActual And mesIni >= mesActual Then
  9.                 Dim dt As New DataTable
  10.                 Dim mesLetra As String
  11.                 For i = 1 To cantMeses
  12.                     mesLetra = MonthName(mesIni, False)
  13.                     dt.Columns.Add(mesLetra & " " & anio)
  14.  
  15.                    If mesIni < 12 Then
  16.                         mesIni = mesIni + 1
  17.                     Else
  18.                         mesIni = 1
  19.                         anio += 1
  20.                     End If
  21.  
  22.                 Next
  23. Dim requiPartida As Double = hf_costoRequi.Value / cantMeses
  24.  
  25.                 dr = dt.NewRow
  26.                 For i = 0 To cantMeses - 1
  27.                     dr(i) = FormatCurrency(requiPartida, 2)
  28.                 Next
  29.  
  30.                 dt.Rows.Add(dr)
  31.  
  32.                 gvDistribucion.DataSource = dt
  33.                 gvDistribucion.DataBind()

La clave estaba en esta seccion:

If mesIni < 12 Then
mesIni = mesIni + 1
Else
mesIni = 1
anio += 1
End If

Saludos y gracias

Etiquetas: año, gridview, loop, meses
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:04.