Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-11-2012
RaulA RaulA is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 10
Poder: 0
RaulA Va por buen camino
Calendario festivos

La cuestion es que necesito tener un calendario con los dias festivos del año incluidos fines de semana para calcular datos.
habia pensado en crear una tabla con los dias festivos y cuando un usuario selecciones un periodo de tiempo (por ejemplo del 20/11/12 al 27/11/12)
comparar todas las fechas de ese periodo con las de la tabla.
La cuestion es saber cuantos dias hay no laborables en ese periodo de tiempo.
No se si alguien sabe algun metodo o algun calendario que haga referencia a dias festivos o fines de semana.
Pongo este post aqui porque he mirado problemas de calendarios y no me a solucionado nada ninguno, no se si hay alguno para ello.
Un saludo
Responder Con Cita
  #2  
Antiguo 20-11-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Creo que la tabla es buena idea, pues los dias festivos son muy arbitrarios y cambian de región a región. Para contar los días laborables entre dos fechas Inicio y Final puedes

1. Contar los días entre esas dos fechas (función DaysBetween)
2. Descontar los fines de semanas (la función WeeksBetween cuenta las semanas entre dos fechas, que debe ser más o menos lo mismo que el número de fines de semana)
3. Descontar los días feriados

Para el último paso podrías hacer un select de tu tabla de dís festivos:

Código SQL [-]
select count(*) from festivos where fecha between :inicio and :final

y descontar el número que te devuelva. Aunque quiza también hay que considerar que undía festivo puede caer en fin de semana y no puedes descontarlo dos veces. Según el motor de datos que uses podrías filtrar la consulta anterior. POr ejemplo, en MySQL puedes hacer eso:

Código SQL [-]
select count(*) from festivos where fecha between :inicio and :final and dayofweek(fecha) between 2 and 6 /* entre lunes y viernes */

// Saludos
Responder Con Cita
  #3  
Antiguo 20-11-2012
RaulA RaulA is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 10
Poder: 0
RaulA Va por buen camino
Muxas gracias me guiare por eso!
Un Saludo
Responder Con Cita
  #4  
Antiguo 20-11-2012
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
En algunos países, como México, esto puede ser un dolor de cabeza pues hay infinidad de días no laborables que no caen en la misma fecha todos los años, además de que hay algunos días que oficialmente no son laborables pero "tradicionalmente" sí, y depende mucho de cada empresa si los otorga o no. Eso sin contar que de acuerdo con la legislación mexicana, "todo trabajador tiene derecho a un día de descanso por cada 6 laborados", dicho día de descanso no necesariamente tiene que ser en domingo además de que el sábado normalmente sí se labora aunque solo medio día. Tenemos los fines de semana largos donde un feriado como por ejemplo: 20 de Noviembre que es el aniversario del inicio de la Revolución Mexicana, se recorrió al Lunes 19 para que hubiera 3 días no hábiles consecutivos. A eso hay que sumarle como ya había dicho: el día de muertos (2 de Noviembre), día de la virgen de Guadalupe (12 de Diciembre), Jueves y Viernes Santo, etc. Y todavía falta considerar los días que cada empresa considere (día del empleado, día de las madres, día del maestro, carnaval, etc.)

Yo hice hace unos años algo parecido a lo que comentas y en efecto era con una tabla pero cada año alguien tenía que encargarse de mantenerla para reflejar los feriados a considerar. Al final al menos en caso de México, creo que se sigue haciendo así y algunas empresas que venden software otorgan actualizaciones anuales de esa dichosa tabla.

En otros países como USA, casi todos los días inhábiles caen siempre el mismo día o bien, la forma de calcularlo no cambia (ejemplo el famoso "thanksgiving" que siempre es el último jueves de Noviembre), además de que sábado y domingo se consideran inhábiles.

Ya ni hablamos del calendario judío o musulmán pues nos metemos en más detalle.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #5  
Antiguo 21-11-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.098
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por aquí nuestros queridos gobernantes nos ayudan con un calendario laboral para cada lugar, por ejemplo, este es el de Asturias.
Responder Con Cita
  #6  
Antiguo 21-11-2012
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Por aquí nuestros queridos gobernantes nos ayudan con un calendario laboral para cada lugar, por ejemplo, este es el de Asturias.
Casi, a los gobernantes no les interesa lo que opinemos (más que cuando se vota por ellos)...

AzidRain te propone el mejor método, ciertamente. Requiere la intervención del usuario, es propenso a fallas, pero por el momento, no hay otra opción disponible.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #7  
Antiguo 21-11-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.098
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por tiammat Ver Mensaje
Casi, a los gobernantes no les interesa lo que opinemos (más que cuando se vota por ellos)...
AzidRain te propone el mejor método, ciertamente. Requiere la intervención del usuario, es propenso a fallas, pero por el momento, no hay otra opción disponible.
Lo decía "sarcásticamente"

De todas formas es cierto que aquí tenemos un calendario laboral oficial para cada población.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como saber cuando son sabados,domingos o festivos en un rango de fechas ingabraham Varios 1 04-02-2010 19:04:27
calendario reina Varios 9 17-04-2007 12:33:28
Calendario srangel JAVA 1 04-09-2004 12:58:08
calendario botones67 Impresión 5 17-05-2003 16:01:35


La franja horaria es GMT +2. Ahora son las 22:37:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi