Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Visual Basic clásico (http://www.forosdelweb.com/f69/)
-   -   Semanas por Mes (http://www.forosdelweb.com/f69/semanas-por-mes-585444/)

SalomonSab 12/05/2008 08:05

Semanas por Mes
 
Hola que Tal, Alguien me puede ayudar, como sacar las semanas que tiene un mes por ejemplo en mi caso inicia la seman el Lunes y Temina El Domingo para el caso de Enero como el lunes es de otro año tomando encuenta el año 2008, serian solo Martes, Miercoles, Jueves, Viernes, Sabado y Domingo serian 6 Dias, Espero haberme explicado y si no ya me lo diran. por lo pronto gracias y espero respuestas...

David 12/05/2008 09:06

Re: Semanas por Mes
 
Cita:

Iniciado por SalomonSab (Mensaje 2400398)
Hola que Tal, Alguien me puede ayudar, como sacar las semanas que tiene un mes por ejemplo en mi caso inicia la seman el Lunes y Temina El Domingo para el caso de Enero como el lunes es de otro año tomando encuenta el año 2008, serian solo Martes, Miercoles, Jueves, Viernes, Sabado y Domingo serian 6 Dias, Espero haberme explicado y si no ya me lo diran. por lo pronto gracias y espero respuestas...

No, no he entendido tu duda, pues un mes siempre tendrá 4 semanas completas (de Lunes a Domingo, o de cualquier otro día) y en caso de que no sea Febrero tendrá más una mitad de semana, no entiendo qué es lo quieres hacer con esos Datos. Si podrías explicarnos mejor.

SalomonSab 12/05/2008 09:27

Re: Semanas por Mes
 
Bien hare todo lo posible para explicarme haber si nos entendemos.

Estoy desarrollando un programa donde se le paga a los trabajadores y necesito sacar esos periodos de pago: es en lo que estoy atorado

coloco una imagen a ver si asi nos explicamos...

como no se como se colocan imagenes aqui. lo pongo de esta manera a ver si nos entendemos..

Código:


Mes                N° Semana          Dias          F. Inicia                F. Termina

                    01                  6            01-Ene-2008              06-Ene-2008
                    02                  7            07-Ene-2008              13-Ene-2008
ENERO              03                  7            14-Ene-2008              20-Ene-2008
                    04                  7            21-Ene-2008              27-Ene-2008
                    05                  7            28-Ene-2008              03-Feb-2008
                    06                  7            04-Feb-2008              10-Feb-2008
FEBRERO            07                  7            11-Feb-2008              17-Feb-2008


Asi sucesivamente hasta llegar ha Diciembre...

Espero que ahora si nos entendamos cualquier aporte se agradece y por lo pronto te agradezco David el Grande por haberte tomado la molestia de contestar.

David 12/05/2008 09:47

Re: Semanas por Mes
 
Es que tu tema me ha confundido, creo que debería ser Semanas por año, trataré de buscar una solución a tu pregunta.

P.S.: ¿Y si el último día del año es un día de la semana y no un Domingo? ¿También cuenta la última semana?

SalomonSab 12/05/2008 10:00

Re: Semanas por Mes
 
Te agradeceria cualquier ayuda David el Grande.

David 12/05/2008 10:16

Re: Semanas por Mes
 
Hice un código de ejemplo, espero que pueda ayudarte con tu idea (una Macro de Excel, pero creo que también funcionará en VB6). Algo así:
Código:


Function Semana(vYear As Integer, NumSemana As Byte, FechaInicio As Date, FechaFin As Date) As Byte
Dim Inicio As Byte
Dim FirstWeek As Byte
Dim InitDate As Date
Inicio = Weekday(CDate("01/01/" & vYear), vbMonday)
If Inicio > 1 Then
    FirstWeek = 7 - (Inicio - 1)
End If
If NumSemana > 1 Then
    InitDate = DateSerial(vYear, 1, 1 + FirstWeek)
    FechaInicio = DateSerial(vYear, 1, Day(InitDate) + (7 * (NumSemana - 2)))
    FechaFin = DateSerial(Year(FechaInicio), Month(FechaInicio), Day(FechaInicio) + 6)
    FirstWeek = 7
    If Year(FechaFin) > vYear Then
        FechaFin = CDate("31/12/" & vYear)
        FirstWeek = DateDiff("d", FechaInicio, FechaFin) + 1
    End If
Else
    FechaInicio = CDate("01/01/" & vYear)
    FechaFin = DateSerial(vYear, 1, FirstWeek)
End If
Semana = FirstWeek
End Function

Para llamarlo haces así:
Código:


Dim DateInicio As Date
Dim DateFin As Date
Dim NumDias As Byte
NumDias = Semana(2008, 1, DateInicio, DateFin)
MsgBox "Número de Días: " & NumDias & vbCrLf & "Fecha de Inicio: " & DateInicio & vbCrLf & "Fecha Fin: " & DateFin
'El parámetro NumSemana puedes cambiarlo por el número de la semana de la que deseas obtener los Datos...

Espero que te ayude en algo.
Saludos. :-)

SalomonSab 12/05/2008 10:21

Re: Semanas por Mes
 
Bien, te agradezco voy a probarlo y ya te contare por lo pronto gracias.

SalomonSab 12/05/2008 10:28

Re: Semanas por Mes
 
Gracias, David el Grande te agradezco por tu aportación, el codigo funciona muy bien, ahora lo que voy hacer es colocar toda la tabla en una grilla para que me ponga todos los periodos de la semana en que se tienen que pagar. y de nuevo

mil pero mil gracias.

David 12/05/2008 10:30

Re: Semanas por Mes
 
Cita:

Iniciado por SalomonSab (Mensaje 2400673)
Gracias, David el Grande te agradezco por tu aportación, el codigo funciona muy bien, ahora lo que voy hacer es colocar toda la tabla en una grilla para que me ponga todos los periodos de la semana en que se tienen que pagar. y de nuevo

mil pero mil gracias.

De nada, me alegro que haya funcionado correctamente.
Saludos :adios:


La zona horaria es GMT -6. Ahora son las 10:03.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.