Apúntate a la Zona De Descargas Reservadas (ZDDR). Solo son 20 Euros
Con solo 20€ ayudarás
a mantener el foro.
Usace, solo opinion


Seguir a udias en Twitter
Directorio de Empresas de Foros de informática


Todo lo que sueñas, se puede diseñar.
We build your dreams.

 - Principal - Responder - Estadísticas - Registrarse - Buscar - Lista de usuarios -  - Zona de Descargas
 -
Ayuda al foro con tu donación
Foros en Udias.com / FileMaker / Calcular dia de la semana concreto de un mes determinado
Autor Mensaje

Miembro

Constante

  Karma           347

#1 Publicado: 17 Mar 2017 12:14



Tengo que realizar una función que me calcule, por ejemplo, el último jueves de un mes determinado, o el primer domingo, o el tercer sábado.
La verdad es que no sé por dónde comenzar, acepto cualquier tipo de sugerencia.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 - FileMaker Pro Advanced 15

Moderador


  Karma             1141

#2 Publicado: 17 Mar 2017 12:54 - Editado por: Alatriste



no entiendo bien lo que quieres, por el título del tema entiendo que quieres saber qué día de la semana es al poner por ejemplo 17/03/2017 respuesta sería viernes, pero después por lo expuesto en el mensaje entiendo otra ¿puedes dar mas info?


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Hay 4 clases de ignorancia:
1ª, El no saber lo que debiera saberse. 2ª, Saber mal lo que se sabe. 3ª, Saber lo que no debiera saberse y 4ª, Creer que ya sabes suficiente.
W10 Pro x64 - FM Advanced v16 (x64)

Miembro

Constante

  Karma           201

#3 Publicado: 17 Mar 2017 13:53 - Editado por: Tarantelo



Hola jmmiro,

Con esta función http://www.briandunning.com/cf/655

La función te devuelve una lista con las fechas de los días de la semana que busques DayNameDates ( "Thursday"; "2/22/2007"; "3/22/2007"). Está en inglés, así que tendrás que aptarla para el nombre de los días y el formato de fechas, pero te permitirá hacer lo que buscas.

Espero que te sirva, es una búsqueda que acabo de hacer.

Un saludo

PD: No hace falta adaptar nada


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 Pro (64 Bits), FM Pro 15 Adv

Miembro

Constante

  Karma           201

#4 Publicado: 17 Mar 2017 14:01 - Editado por: Tarantelo



Acabo de leer más y esa función se apoya en otra http://www.briandunning.com/cf/345

Que nos devuelve, dándole una fecha, la próxima fecha que sea el día de la semana que preguntamos.

Lo veo algo lioso pero creo que se entiende con un ejemplo.
NextDayNameDate ( 09/25/2005; "Monday" ) devuelve el siguiente lunes después de la fecha 09/25/2006 que es el día 09/26/2005

Un saludo


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 Pro (64 Bits), FM Pro 15 Adv

Miembro

Constante

  Karma           201

#5 Publicado: 17 Mar 2017 14:40 - Editado por: Tarantelo



Y te adjunto un ejemplo, en el campo "filtrar día" pones en el idioma del interface el nombre del día a filtrar.

Se puede modificar para que no necesite la segunda función, la que busca el siguiente nombre de día.

Un saludo

PD: He modificado la función DateRange para que añada el nombre del día y que sea mas fácil la comprobación de que funciona,

Dnas_semana.fmp12Archivo adjunto: Dnas_semana.fmp12
 

Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 Pro (64 Bits), FM Pro 15 Adv

Moderador


  Karma               1337

#6 Publicado: 17 Mar 2017 17:53



jmmiro:
por ejemplo, el último jueves de un mes determinado

¿Del año actual o de otro?


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Emptiness matters! Windows 10, FileMaker Pro 16 Advanced

Miembro

Constante

  Karma           347

#7 Publicado: 20 Mar 2017 09:34



Explico exactamente para que es.
Como ya he dicho otras veces somos un centro que trabaja con gente con discapacidad y uno de los servicios que realizamos son limpiezas de comunidades e industriales. Tenemos clientes que se realiza el servició semanalmente 1 o 2 días, otros mensualmente, pero y aquí está el problema, hay clientes que aparte del trabajo "normal" cada último jueves de cada dos meses se les limpia los cristales de las oficinas, cada primer lunes de cada mes se les limpia ............. y así diferentes cosas. Estos últimos tipos de trabajo son los que me traen de cabeza y no logro automatizar.


Lo ideal sería poder indicar el año, ya que cuando el cálculo tenga que realizarse en los meses de noviembre o diciembre el mes siguiente o los 2 meses siguientes ya serán del año próximo.


Muchas gracias tarantelo, se acerca mucho a lo que necesito.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 - FileMaker Pro Advanced 15

Miembro

Constante

  Karma           201

#8 Publicado: 20 Mar 2017 10:07 - Editado por: Tarantelo



Con las funciones que te puse, si le pasas el primer día y últimos del mes te devuelve una lista y solo tienes que seleccionar el número de orden.

Para el segundo lunes de junio de 2017 sería:

Partiendo de 2 valores:

mes_temp=6
anio_temp=2017

GetValue ( DayNameDates ( "lunes"; Date(mes_temp;1;anio_temp); Date(mes_temp+1;1;anio_temp)-1) ; 2 )

Lo único a pulir es para conseguir el último día del mes, en este caso le sumo 1 al mes que pido pero se lo pedimos en diciembre habría que sumar uno al año. Seguro que hay alguna función o se podría crear de forma sencilla.

Un saludo


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 Pro (64 Bits), FM Pro 15 Adv

Miembro

Constante

  Karma           201

#9 Publicado: 20 Mar 2017 10:38 - Editado por: Tarantelo



Te adjunto un ejemplo con todo echo, lo único a tener en cuenta es que puede haber hasta 5 posibles resultados por mes, pero no siempre. Si le pides el 5 y solo hay 4 te devuelve blanco.

Un saludo

Dnas_semana.fmp12Archivo adjunto: Ejemplo por número
 

Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 Pro (64 Bits), FM Pro 15 Adv

Miembro

Constante

  Karma           201

#10 Publicado: 20 Mar 2017 10:44 - Editado por: Tarantelo



En el último ejemplo si pones:

Desde 01/12/2017
Hasta 29/12/2017
Filtrar día domingo
Número de orden 5

Te devuelve 31/12/2017 <- quinto mes de Diciembre de 2017

No es que esté mal, es que en el cálculo de la fecha por orden en el mes, solo se calcula sobre el mes y año introducidos en Desde.

Un saludo


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 Pro (64 Bits), FM Pro 15 Adv

Miembro

Constante

  Karma           347

#11 Publicado: 20 Mar 2017 10:57



Muchas gracias Tarantelo.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 - FileMaker Pro Advanced 15

Miembro

Constante

  Karma           347

#12 Publicado: 20 Mar 2017 11:39



Por cierto, para conseguir el ultimo día del mes, lo que hago es obtener el primer día del mes y ha esta fecha le sumo 1 al mes y al resultado le resto 1, con esto siempre tienes el ultimo día del mes, sea el que sea.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 - FileMaker Pro Advanced 15

Miembro

Constante

  Karma           347

#13 Publicado: 20 Mar 2017 12:08



Tarantelo, adjunto tu ejemplo con el calculo de primer u ultimo dia de mes.

Dnas_semana.fmp12Archivo adjunto: Dnas_semana.fmp12
 

Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 - FileMaker Pro Advanced 15

Miembro

Constante

  Karma           201

#14 Publicado: 20 Mar 2017 12:38



jmmiro:
Por cierto, para conseguir el ultimo día del mes, lo que hago es obtener el primer día del mes y ha esta fecha le sumo 1 al mes y al resultado le resto 1, con esto siempre tienes el ultimo día del mes, sea el que se

La verdad, es más elegante que lo que yo hacía.

Un saludo


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 Pro (64 Bits), FM Pro 15 Adv

Moderador


  Karma               1337

#15 Publicado: 20 Mar 2017 12:49



Hola.
Para conseguir el último día del mes es muy sencillo, gracias a que FileMaker lo hace si en el parámetro Dia de la función Date pones 0.

Date ( Month ( Get ( CurrentDate ) ) + 1 ; 0 ; Year ( Get ( CurrentDate ) ) )

También hay que tener en cuenta que al sumar 1 al mes, si estamos en diciembre, FileMaker pasa a enero del año siguiente.

Un saludo,


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Emptiness matters! Windows 10, FileMaker Pro 16 Advanced

Miembro

Constante

  Karma           347

#16 Publicado: 20 Mar 2017 14:10



Gracias flusheddata, esta no la sabia


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 - FileMaker Pro Advanced 15

Miembro

Habitual

  Karma     27

#17 Publicado: 21 Mar 2017 00:46



Hola,

Una tontería que se me ocurre a modo "cuenta de la vieja", y aprovechando el dato sobre la función date de flusheddata, que tampoco conocía, puedes ir al primer día del mes que deseas, buscar la primera ocurrencia (el primer lunes, el primer domingo...el que busques), y luego hacer:

Fecha + ( 7* (Número de orden -1))

Comprueba si te has pasado de mes, y si es que si: Fecha= Fecha -7

...


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Carlos CM Mac OSX Sierra FM Pro Adv 16

Miembro

Habitual

  Karma     27

#18 Publicado: 21 Mar 2017 00:48



Si buscas el último, por ejemplo, asignas 5 a Número de orden y misma operación.

Saludos!


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Carlos CM Mac OSX Sierra FM Pro Adv 16

Moderador


  Karma               1337

#19 Publicado: 21 Mar 2017 01:59



Hola.
Aquí tenéis una función personalizada que permite obtener la fecha de un año, mes y día de la semana determinados.

La función es DiaSemanaMes ( Anio ; Mes ; DiaSemana ; Ocurrencia )
Donde Anio puede ser un número o Year ( Get ( CurrentDate ) ) por ejemplo,
Mes igual que en año, DiaSemana el día de la semana en número (1 = lunes, 2 = martes, etc) y Ocurrencia la vez que aparece el día en el mes.

Por ejemplo DiaSemanaMes ( 2017 ; 8 ; 3 ; 3 ) daría la fecha del tercer miércoles de agosto de 2017 que es 16/08/2017.

Un saludo.

DiaSemanaMes.zipArchivo adjunto: DiaSemanaMes.zip
 

Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Emptiness matters! Windows 10, FileMaker Pro 16 Advanced

Miembro

Constante

  Karma           347

#20 Publicado: 21 Mar 2017 09:05



Flusheddata "tu si que vales" muchas gracias


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 - FileMaker Pro Advanced 15

Miembro

Habitual

  Karma     27

#21 Publicado: 21 Mar 2017 10:00



Te la cojo flusheddata.

Gracias, saludos.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Carlos CM Mac OSX Sierra FM Pro Adv 16

Miembro

Constante

  Karma           201

#22 Publicado: 21 Mar 2017 11:30



charlicamisa:
Una tontería que se me ocurre a modo "cuenta de la vieja", y aprovechando el dato sobre la función date de flusheddata, que tampoco conocía, puedes ir al primer día del mes que deseas, buscar la primera ocurrencia (el primer lunes, el primer domingo...el que busques), y luego hacer:

Fecha + ( 7* (Número de orden -1))

Comprueba si te has pasado de mes, y si es que si: Fecha= Fecha -7

Yo creo que para eso sirve el foro, para ver diferentes opciones que se aportan y enriquecer nuestro conocimiento.

Espero que salgan más hilos como este y que nos enriquezca a todos.

Un saludo


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Windows 10 Pro (64 Bits), FM Pro 15 Adv
Su respuesta

Estilo Negrillas  Estilo Italico  Estilo Subrayado  URL De La Imagen  URL De La Web  Preformatted Text  YouTube URL  Sin código BB
Emoticones
:) ;) :up: :down: :biglol: :confused :cool: :mad: :sad: :shame: :smirk: :tongue: ... Más  Emoticones desactivados
Color de texto
Texto en negro Texto en blanco Texto en gris Texto en rojo Texto en azul Texto en verde Texto en rojo oscuro Texto en cian Texto en azul oscuro Texto en púrpura Texto en amarillo Texto en rosa Texto en naranja Texto en verde oliva Texto en marrón



 » Usuario  » Contraseña 
Solo Usuarios Registrados Pueden Postiar Aqui.
 

Tópicos relacionados con Calcular dia de la semana concreto de un mes determinado

Calcular dias de la semana en español
Como recuperar datos de un campo determinado de un registro determinado?
Listado concreto
situarme en un registro en concreto de un portal
¿Como contar un número de campos concreto?


Conectados: Invitados - 5
Miembros - 0
En verde usuarios ZDDR

Realizado con miniBB © 2001-2017
Para Udias.com © 1996-2017
Hosting con Interdominios