urgente:obtener número de la semana dada una fecha en vb

Alicia
10 de Noviembre del 2003
Hola,

Alguien sabe como obtener el número de la semana dada una fecha? Es en vb.

Gracias

MxOndo
10 de Noviembre del 2003
Usa la funcion siguiente:

Dim Dia as Byte
Dia = Weekday("10/11/2003")

Como resultado obtienes 2 (Lunes) , es por que se supone que el primer dia es el Domingo.

Domingo = 1
Lunes = 2
Martes = 3
...
...

Saludos.

Baltasar
10 de Noviembre del 2003
He buscado en la ayuda de Visual Basic y no veo nada al respecto, así que lo único que se me ocurre es hacer una pequeña función que te devuelve ese valor. Sólo falta hacer una pregunta: la primera semana del año cual es? si el año comienza con un jueves (por ejemplo) se supone que esa es la primera semana? o la primera será la del primer lunes?

Una vez hayas resuelto esa cuestión, el resto es muy sencillo:

Public Function NumSemana(mfecha As Date, PrimerDiaSemana As Integer, SemanaCompleta As Boolean) As Integer
Dim MYear As Integer
Dim NumSemanas As Integer
NumSemanas = 0
MYear = Year(mfecha)
Do While Year(mfecha) = MYear
If WeekDay(mfecha) = PrimerDiaSemana Then
NumSemanas = NumSemanas + 1
End If
mfecha = mfecha - 1
Loop
If WeekDay(mfecha + 1) <> PrimerDiaSemana And Not SemanaCompleta Then
NumSemanas = NumSemanas + 1
End If

NumSemana = NumSemanas
End Function

la forma de usarlo sería:
Numsem= NumSemana(fechacualquiera, 2, False) 'la semana comienza en lunes, y el primer día del año pertenece a la primera semana del año.

Numsem= NumSemana(fechacualquiera, 2, true) 'la semana comienza en lunes, y el primer lunes del año marca el comienzo de la primera semana del año.

Saludos