Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-10-2011
Vales08 Vales08 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 133
Poder: 14
Vales08 Va por buen camino
Asignar fecha según el día elegido!!

Buenas tardes foro!!

Tengo un checkbox por cada día.

√Lunes √Martes √ Miércoles √Jueves √Viernes √ Sábado √Domingo

Lo que yo quiero es lo siguiente: según el día que elijo, quiero asignarle la fecha que coincida con tal día..
Ejemplo:
Si selecciono el día MARTES, necesito según la fecha actual, asignarle la fecha inmediatamente posterior a la actual, pero que coincida con un MARTES. Si hoy es 17/10/2011 (lunes), yo necesito que a MARTES se le asigne la fecha 18/10/2011, que es el MARTES que sigue.
Y así con los días que hayan sido elegidos.

Pero quiero saber si existe alguna función para que lo haga automáticamente en un botón, ya que yo no tengo que seleccionar la fecha de ningún componente, no utilizo con componentes TDateTimePicker ni TMonthCalendar, solamente al dar aceptar, que asigne las fechas.

Se que existe una función de la unit DateUtils que a partir de una fecha se puede saber que dia de la semana es, pero yo necesito una función que haga totalmente lo contrario..
Trabajo con delphi 7 y ya tengo instalada la unit DateUtils, ya que en delphi 7 no viene instalada por defecto.

Espero me puedan ayudar y haber sido clara, cualquier duda vuelvo a explicar.
Desde ya muchas gracias..
Responder Con Cita
  #2  
Antiguo 18-10-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
No entiendo de para atrás ni para adelante lo que quieres.

Tomá más tiempo para redactar lo que quieres expresar. No te apures que el apuro no deja nada.

Saludos
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #3  
Antiguo 18-10-2011
Vales08 Vales08 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 133
Poder: 14
Vales08 Va por buen camino
Te pongo un ejemplo:

Tengo que cargar horarios que trabaja un profesional y los dias.
Con los checkbox selecciono los dias que trabaja tal profesional. Como ejemplo seleccionamos solo el dia jueves y cargamos en dos dbedit los horarios que trabaja, ej: desde 08:00hs a 10:00hs..
Ahora, lo que yo necesito es que esos horarios del dia jueves se guarden con una fecha, pero esa fecha debe coincidir con el dia elegido..
No es correcto que si yo consulto el horario del profesional una fecha 17/10/2011 (lunes), me salgan los horarios del dia jueves. me explico??
Entonces yo quiero que al dia jueves se le asigne la proxima fecha que caiga jueves en el almanaque, por ejemplo el 20/10/2011, es el proximo jueves.
Eso se puede saber o hacer en delphi?? con alguna funcion?

Espero haberte aclarado el tema, yo creo que se entiende, pero claro, yo si sé que es lo que quiero, sin embargo para ustedes aveces es complicado entender lo que uno tiene en la cabeza.
Pido perdon por no saber expresarme bien, hice lo posible para que se entienda..

Muchas gracias
Responder Con Cita
  #4  
Antiguo 18-10-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Según entendí, tal vez la función IncDay de la unidad DateUtils te puede asistir en lo que necesitas.

Por ejemplo, suponiendo que hoy 17 de octubre es lunes, el próximo lunes será 24 de octubre. Esto es una diferencia de siete días exactamente. Pues con esa información y utilizando IncDay puedes determinar que fechas serán los próximos lunes del resto del año por ejemplo.

Código Delphi [-]
proximo_lunes := IncDay(Now, 7); // suponiendo que now devolverá 17/oct/2011

Saludos!
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #5  
Antiguo 18-10-2011
Vales08 Vales08 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 133
Poder: 14
Vales08 Va por buen camino
Si esa función me funcionaria barbaro para otra cosa que tambien quiero hacer, por ejemplo guardar los horarios que trabaja el profesional el dia jueves pero en todos los jueves del mes y no solamente en el jueves de una sola semana.

Lo que yo necesito ahora es, siempre teniendo en cuenta la fecha actual de la computadora, calcular que fecha cae el proximo jueves o cualquier dia que haya sido elegido.

Yo tenia pensado ver si existe la funcion que a partir de una fecha actual, se pueda calcular el primer dia de la semana y el ultimo, entonces asi seria mucho mas facil para calcular la fecha para cada dia de la semana..
Ejemplo: Pensarlo como un arreglo del [0..6] donde el Domingo (0), Lunes (1), Martes (2), Miercoles (3), Jueves (4), Viernes (5), Sabado (6).
Dada una fecha, en este caso la de la computadora, supongamos que es el 17/10/2011 , sacamos a que dia corresponde tal fecha, creo que con la funcion DayoftheWeek, el cual da el dia de la semana de una fecha dada.

Entonces quedaria de la siguiente forma: a la fecha now(actual)

Si DayoftheWeek es 0, entonces para calcular lunes, se le suma 1 a la fecha actual, para calcular martes se le suma 2, para calcular miercoles se le suma 3, para calcular jueves se le suma 4 y asi sucesivamente..

Si DayoftheWeek es 1, entonces para calcular martes se le suma 1 a la fecha actual, para calcular miercoles se le suma 2, etc..

y de esta manera se tendrian que hacer varios if, pasandolo a codigo delphi.

Me gustaria saber que opinan ustedes que saben mas, yo la verdad ya no se como pensarlo..

Chis muchas gracias por tu aporte, me sirve, me ayudo a pensar una forma mejor de codigo, pero la verdad aun no estoy convencida..
Responder Con Cita
  #6  
Antiguo 18-10-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Creo que te estás confundiendo demaciado con esto. De hecho no te entiendo lo que quieres. Por ejemplo:
Cita:
Si DayoftheWeek es 0, entonces para calcular lunes, se le suma 1 a la fecha actual, para calcular martes se le suma 2, para calcular miercoles se le suma 3, para calcular jueves se le suma 4 y asi sucesivamente..

Si DayoftheWeek es 1, entonces para calcular martes se le suma 1 a la fecha actual, para calcular miercoles se le suma 2, etc..
¿Desde cúal perspectiva calcularías los días para hacerle este incremento a DayOfWeek? Para ver el problema desde este punto de vista el código DEBERÁ ejecutarse en un día en específico y no en otro, por ningún motivo. Cosa que creo no deseas.

Tienes un problema. Para resolverlo necesitas dividirlo en partes más pequeñas. Pero tengo la impresión que andas buscando el código enterito que resolverá el problema global. No, así no se hacen las cosas. Si programas así no tardarás mucho en volverte loco. En programación se aplica la técnica de "divide y vencerás". Esto es lo mismo que te he dicho, un problema hay que dividirlo en problemas más pequeños y simples de resolver.

Empecemos por aquí antes de seguir. Vamos en partes. Haste a la idea que a mí no me interesa cada detalle de lo que debe hacer tu aplicación. Tampoco tienes por qué decirlo a menos que se te lo pida. Entonces, plantea preguntas simples. No te preocupes por la cantidad. En este club habemos muchos con afán de ayudar y no nos importa la cantidad o complicación de la pregunta. Ve los números de entradas que se han creado para que me creas.

Divide tu problema. Y trata de explicarte mejor. No quieras decir todo en un sólo párrafo. Trata una idea en un sólo párrafo y si se necesita, explicala en detalle entre distintos párrafos sin mezclar ideas que no estén relacionadas a la idea principal que quieres compartir.

Por último te recomiendo, toma lápiz y papel y trata de resolver el problema en él. Verás que no tardarás mucho en dar con esa solución que andas buscando. Si deseas puedes pedir opinión al respecto acá. Talvez alguien puede mejorla.

Saludos,
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
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
Obtener nombre de carpetas segun la fecha Ledian_Fdez Varios 2 23-03-2009 23:04:31
fecha segun idioma del servidor karocs .NET 2 27-08-2007 23:21:15
Busqueda segun el mes de una fecha(no la fecha completa) federiconqn21 Firebird e Interbase 1 05-05-2006 15:39:53
Busqueda segun seleccion y asigancion de fecha a un DBEdit. JoanKa Varios 1 12-06-2005 21:29:28
Asignar un campo tipo fecha... Rubiel SQL 4 14-06-2003 11:03:19


La franja horaria es GMT +2. Ahora son las 23:58:39.


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