none
Como generar fecha en secuencia por intervalo de semana RRS feed

  • Pregunta

  • Saludos necesito como generar fecha en intervalo de semanas , a ver si me pueden solucionar ! 

    Osea la idea es esta: GENERAR FECHA ENTRE 15/4/2017 HASTA EL 15/5/2017 POR INTERVALO DE SEMANAS

    NO. CUOTAS

    FECHA

    CUOTA RD$

    ESTATUS

    MORA X MES

    1

    15/4/2017

    1,700

    PENDIENTE

    1,785

    2

    22/4/2017

    1,700

    PENDIENTE

    1,785

    3

    29/4/2017

    1,700

    PENDIENTE

    1,785

    4

    6/5/2017

    1,700

    PENDIENTE

    1,785

    5

    13/5/2017

    1,700

    PENDIENTE

    1,785

    AHORA BIEN: yo tengo este codigo

                        

            Dim fecha1 As Date = dt_inicial.Value
            Dim fecha2 As Date = dt_final.Value


            Dim x As Integer

            'Dim meses As Integer

           'meses = DateDiff(DateInterval.Month, fecha1, fecha2)

            Dim meses As Integer = ((fecha2.Year - fecha1.Year) * 12) + fecha2.Month - fecha1.Month

            For i = 0 To meses

                'Agrega 1 mes por cada iteración
    Dim nuevaFecha As Date = fecha1.AddMonths(i)

                Dim newRow() As String = New String() {x + 1, nuevaFecha.ToShortDateString(), txtcuota.Text, txtestatus.Text, txtmoraxmes.Text}
                x = x + 1

                DataGridView1.Rows.Add(newRow)

                'DataGridView1.Rows.Add(nuevaFecha.ToShortDateString())
            Next

    Pero me genera una secuencia en meses y no quiero eso ! me sale 

    Y YO NO QUIERO ESO ! ME PUEDEN AYUDAR?

    NO. CUOTAS

    FECHA

    CUOTA RD$

    ESTATUS

    MORA X MES

    1

    15/4/2017

    1,700

    PENDIENTE

    1,785

    2

    15/5/2017

    1,700

    PENDIENTE

    1,785

    3

    15/6/2017

    1,700

    PENDIENTE

    1,785

    4

    15/7/2017

    1,700

    PENDIENTE

    1,785

    5

    15/8/2017

    1,700

    PENDIENTE

    1,785

    miércoles, 5 de abril de 2017 14:11

Respuestas

  • Entonces como seria que generara la siguiente fecha por mes  si es del 15/4/2017 al 13/6/2017 que empiece por el 15/5/2017 ... asi sucesivamente ? 

    Si determinas un rango de fechas prefiero utilizar un bucle que base el número de iteraciones en una condición externa al índice de recorrido, por ejemplo:

    FechaInicio = FechaInicio.AddMonths(1)
    Dim Cuota = 1
    Do
    	'Escribir instrucciones
    
    	FechaInicio = FechaInicio.AddMonths(1)
    	Cuota += 1
    Loop While (FechaInicio <= FechaFin)


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Dixiel Samora viernes, 7 de abril de 2017 13:57
    jueves, 6 de abril de 2017 17:37

Todas las respuestas

  • Enfatiza una oración marcando las palabras en negrita o subrayándolas, no escribas en mayúsculas.

    No veo la complejidad del caso, si lo que buscas es obtener una secuencia o serie en intervalos de 7 días escribe una instrucción repetitiva (bucle) agregando -por cada iteración- 7 días, el bucle finalizará a penas la fecha -con los días agregados- sea mayor al limite superior establecido, por ejemplo:

    Dim FechaInicio As DateTime = New DateTime(2017, 4, 15)
    Dim FechaFin As DateTime = New DateTime(2017, 5, 15)
    Dim Cuota = 1
    
    While (FechaInicio <= FechaFin)
    	MessageBox.Show(String.Format("Nro {0} Fecha {1}", Cuota, FechaInicio.ToShortDateString()))
    
    	FechaInicio = FechaInicio.AddDays(7)
    	Cuota += 1
    End While


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 5 de abril de 2017 17:14
  • Willams Morales entonces como seria que generara la siguiente fecha por mes  si es del 15/4/2017 al 13/6/2017 que empiece por el 15/5/2017 ... asi sucesivamente ?

    puede ser asi

     For i = 0 To meses

                'Agrega 1 mes por cada iteración
    Dim nuevaFecha As Date = fecha1.AddMonths(i) + 1

                Dim newRow() As String = New String() {x + 1, nuevaFecha.ToShortDateString(), txtcuota.Text, txtestatus.Text, txtmoraxmes.Text}
                x = x + 1

                DataGridView1.Rows.Add(newRow)

    agregando el mas 1 

    • Editado Dixiel Samora jueves, 6 de abril de 2017 16:52 cambiar codigo
    jueves, 6 de abril de 2017 16:35
  • Entonces como seria que generara la siguiente fecha por mes  si es del 15/4/2017 al 13/6/2017 que empiece por el 15/5/2017 ... asi sucesivamente ? 

    Si determinas un rango de fechas prefiero utilizar un bucle que base el número de iteraciones en una condición externa al índice de recorrido, por ejemplo:

    FechaInicio = FechaInicio.AddMonths(1)
    Dim Cuota = 1
    Do
    	'Escribir instrucciones
    
    	FechaInicio = FechaInicio.AddMonths(1)
    	Cuota += 1
    Loop While (FechaInicio <= FechaFin)


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Dixiel Samora viernes, 7 de abril de 2017 13:57
    jueves, 6 de abril de 2017 17:37