Función para saber la fecha del lunes de semana |
Responder |
Autor | |
pascual14
Colaborador Unido: 30/Junio/2014 Localización: madrid Estado: Sin conexión Puntos: 530 |
Tema: Función para saber la fecha del lunes de semana Enviado: 20/Febrero/2020 a las 14:06 |
Hola amigos, hay alguna forma de saber la fecha del primer día de una semana ISO, es decir si quiero saber el primer día de la semana 8 del 2020 que me dé el 17/02/2020. No encuentro como hacerlo. Gracias.
|
|
Maverick2019
Habitual Unido: 10/Junio/2019 Localización: Madrid Estado: Sin conexión Puntos: 145 |
Enviado: 20/Febrero/2020 a las 15:10 |
Hola
Según este link (https://en.wikipedia.org/wiki/ISO_week_date#First_week), la primera semana del año es aquella que contiene el jueves. Es dercir, la primera que contiene cuatro dáis. Dicho esto, lo que tienes que hacer es calcular que semana es la que contiene el uno de enero del año que quieras calcular. Una vez hecho, sumas las semanas que quieras, ves que día de la semana es el resultante y calculas que fecha es el lunes correspondiente. Yo he hecho esto: Public Function PrimerDiaSemanaXX(lAno As Long, iSemana As Integer) As Date Dim dFecha As Date, iNumSemana As Integer, iDiaSemana As Integer dFecha = DateSerial(lAno, 1, 1) iNumSemana = DatePart("ww", dFecha, vbMonday, vbFirstFourDays) If iNumSemana = 1 Then dFecha = DateAdd("ww", iSemana - 1, dFecha) Else dFecha = DateAdd("ww", iSemana, dFecha) End If iDiaSemana = IIf(Weekday(dFecha, vbMonday) = 1, 0, -1 * (Weekday(dFecha, vbMonday) - 1)) If Abs(iDiaSemana) >= 1 Then dFecha = DateAdd("d", iDiaSemana, dFecha) End If PrimerDiaSemanaXX = dFecha End Function Le pasas como parámetros que año quieres calcular, y que semana. Te devolverá el lunes de esa semana. Espero te sirva. Salu2,
|
|
pascual14
Colaborador Unido: 30/Junio/2014 Localización: madrid Estado: Sin conexión Puntos: 530 |
Enviado: 20/Febrero/2020 a las 17:34 |
Hola Maverick2019 primero agradecerte la ayuda. Lo he probado pero me devuelve el martes y no consigo solucionarlo ¿puede ser restando 1 el día y funcionará?
|
|
Maverick2019
Habitual Unido: 10/Junio/2019 Localización: Madrid Estado: Sin conexión Puntos: 145 |
Enviado: 20/Febrero/2020 a las 17:51 |
Hola
Sí ejecuto para el ño 2020 y la semana 8, me devuelve 17/02/2020, que es el lunes de la semana 8 (primera semana con cuatro días). ¿Que parámetros le pasas a la función? Salu2, |
|
ximo
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Colaborador Unido: 03/Marzo/2006 Localización: España Estado: Sin conexión Puntos: 2085 |
Enviado: 20/Febrero/2020 a las 18:42 |
hola, Pasaté, por esta web en cuanto a fechas tienes casí lo que necesites. Saludos, ximo
|
|
La incansable busqueda de información abre nuestras mentes
Saludos desde Burriana |
|
pascual14
Colaborador Unido: 30/Junio/2014 Localización: madrid Estado: Sin conexión Puntos: 530 |
Enviado: 20/Febrero/2020 a las 20:32 |
Perdón Maverick, si que funciona bien, me equivocaba en el tipo de parámetro. Me sirve. Gracias. Ximo muy buen aporte de fechas.
Podéis cerrar el hilo.
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |