eljarocho.com.mx

  • Aumentar fuente
  • Fuente predeterminada
  • Disminuir fuente

Función para calcular las semanas de un año dado

E-mail Imprimir PDF

Para todos aquellos que programan en VBA, les entrego una función que calcula las semanas del año, hay que recordar que estas varian dependiendo de si el año es bisiesto o no y algunos otros factores.

Aquí el código:

Function semanasdelaño(ultaño As Integer) As Integer
Dim iniaño As Date, finaño As Date, diniaño As Integer, diasaño As Integer, dfinaño As Integer, semaño As Integer
 
    iniaño = CDate("01/01/" & CStr(ultaño))
    finaño = CDate("31/12/" & CStr(ultaño))
    diasaño = DateDiff("d", iniaño, finaño) + 1
    diniaño = Weekday(iniaño)
    dfinaño = Weekday(finaño)
        If Not (diniaño = 1) Then
            diasaño = diasaño + diniaño
        End If
        If Not (dfinaño = 7) Then
            diasaño = diasaño - dfinaño
        End If
    semaño = diasaño \ 7
    semanasdelaño = semaño
End Function

Si mejoran este código no duden en enviarlo para su publicación.

Última actualización el Lunes, 21 de Junio de 2010 13:42  

Comentarios  

 
+2 #2 C.O.CH 22-06-2010 17:18
Otro más:

Function calculasemana(f echa As Date) As Integer
Dim ini As Date
Dim pridiaño As Integer
Dim dt As Integer

ini = CDate("01/01/" & CStr(Year(fecha )))
pridiaño = Weekday(ini)
dt = fecha - ini + pridiaño - 1
calculasemana = (dt 7) + 1
End Function
Citar
 
 
+2 #1 E.R.G 22-06-2010 17:11
Otro código:

Function semanasdelaño(u ltaño As Integer) As Integer
Dim iniaño As Date, finaño As Date

iniaño = CDate("01/01/" & CStr(ultaño))
finaño = CDate("31/12/" & CStr(ultaño))
semanasdelaño = DateDiff("ww", iniaño, finaño)
End Function

Saludos,
Citar