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 10-12-2008
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
Ayuda con formula

Hola foreros. Tengo en un ComboBox valores fijos del 1 al 5, y en otro valores del 1 al 12, el primero representa el numero de la semana en el numero del mes del otro ComboBox. Ej. El usuario elije: ComboBox1=3 y ComboBox2=10 Esto significa la 3ra semana del mes de Octubre. Ahora, con esos dos datos necesito saber, a que numero de semana pertenece en el AÑO. Ej= 42 (hipotetico). Lo que necesito es lo mismo que lo que hace el WeekOf(TDate) de la unit DateUtils, que te devuelve de una fecha, el numero de la semana en el año. Con la diferencia que no tengo la fecha, sino, como dije antes, solo el numero de la semana en el mes y el mes por supuesto. Muchas gracias.
Responder Con Cita
  #2  
Antiguo 10-12-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola, echale un vistazo a EncodeDate
Responder Con Cita
  #3  
Antiguo 10-12-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Hola:

¿no puedes usar un TDateTimePicker? es un control donde eliges la fecha directamente y no tienes que lidiar con errores como 30/02/2010.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 10-12-2008
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
Cita:
Empezado por Lepe Ver Mensaje
Hola:

¿no puedes usar un TDateTimePicker? es un control donde eliges la fecha directamente y no tienes que lidiar con errores como 30/02/2010.

Saludos
Lepe, vuelve a leer mi pregunta, porque parece no has entendido.
Olvidate de fecha... No tengo fecha alguna, solo tengo un numero del 1 al 5 y otro del 1 al 12, el primero indica el NUMERO DE LA SEMANA del MES del segundo numero.
EJ: 3 y 10, significa, 3ra semana del mes de octubre.
y necesito:
de esos dos numeros, poder sacar el NUMERO de la semana del AÑO.
EJ: 3ra semana del mes de octubre = xx SEMANA DEL AÑO.
Gracias por tu comentario.
Responder Con Cita
  #5  
Antiguo 10-12-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola paladincubano,

si bien me parece que tienes toda la razon del mundo, creo que la agresividad estaba injustificada. Sobre como resolver tu duda, seria algo como :

Código Delphi [-]
var
       d,m,y : word;
       t : TDateTime;
       s : integer;
begin
       d  := 7*inttostr(ComboBoxSemana.Text);
       m  := inttostr(ComboBoxMes.Text);
       y  := 2000; 
       t  := EncodeDate(y,m,d);
       s  := WeekOf(t);
 end;

es posible que a d le tengas que sumar o restar uno, segun tus necesidades. Saludos.
Responder Con Cita
  #6  
Antiguo 10-12-2008
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
Muchas gracias, luego lo pruebo, ahora no estoy delante del ordenador. Con respecto a la agresividad, perdonenme si lo han entendido asi, pero afirmo, no hay agresividad ninguna en mis palabras, al menos es lo que siento, y cuando lo escribi, pues por supuesto no estab agresivo. Vuelvo y repito, si heri a alguien los sentimientos pues disculpadme pero no fue mi intencion.
Y menos en esta web que ayuda tanto a los demas y principalmente pues ami que lo necesito mucho de vez en cuando.
saludos y gracias por sus posts.
Responder Con Cita
  #7  
Antiguo 10-12-2008
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 381
Poder: 20
fidel Va por buen camino
Hola:

Una pequeña idea que puedes ampliar, aunque quizás sea un poco enrevesada.

Semana del mes igual a 1 (el primer día)

Vas recorriendo día a día todos los días del mes pedido y cogiendo a que semana del año pertenece caa día.
Cuando cambie la semana del año a la que pertenece aumentas en uno la semana del mes y sabrás en que semana de ese més estás.
Comparas la semana del mes con la semana pedida y cuando coincida ya la tienes.

No se si se entiende muy bien en tan pocas líneas.

Un saludo.
Responder Con Cita
  #8  
Antiguo 10-12-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Lo que necesitas es la función EncodeDayOfWeekInMonth que te devuelve una fecha, ¿fecha?, ¿he dicho fecha? miedo me da pensar lo que puede decir nuestro amigo paladincubano como se enoje

Una vez tienes tienes la fecha usa weekOf y sacas el número de la semana.

La verdad, he estado a punto de no responder porque, para hallar la semana del año, necesitas saber el año en cuestión, y en tu mensaje original no dices nada del año, solo tienes el número de mes y el número de semana dentro del més. He querido aclarar esto no vaya a ser que....

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 11-12-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Bueno, la verdad es que es bastante mas sencillo...

semanadelaño = (mes-1)*4 + numerosemanames

...mas o menos...

esto seria mas correcto :

Código Delphi [-]
function SemanadelAño(n,m : integer) : integer;
const
     diaspormes = [31,28,31,30,31,30,31,31,30,31,30,31]
begin
     result := 0;
     while m > 0 do
     begin
        result := result + diaspormes[m];
        dec(m);
     end;

     result := result div 7 + n;
end;

aunque tambien daria fallos segun bisiesto, 1 de enero domingo, etc...

Última edición por coso fecha: 11-12-2008 a las 16:55:31.
Responder Con Cita
  #10  
Antiguo 11-12-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
...recuerda los años bisiestos ...

Edito:
Si te empeñas, puedes hacerlo a mano, por supuesto, pero ese mismo array creo haberlo visto en sysutils o en dateutils, con esto quiero decir que al final vas a reinventar la rueda, y posiblemente tenga algún que otro bug (siempre hay un detalle que se te olvida). La VCL y las rutinas de Borland suelen estr depuradas y bien pensadas, con lo cual, es mejor tirar de ellas que hacerlas de nuevo.

Por supuesto puedes hacerlo como quieras, pero mi consejo es usar lo que ya está hecho.

coso: ambos estamos editando nuestros mensajes... a ver que sale de todo esto

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 11-12-2008 a las 16:59:28.
Responder Con Cita
  #11  
Antiguo 11-12-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Nada, lo mejor es mi primer codigo, aunque creo que el ultimo daria error tansolo si el año empieza mas atras de miercoles y es bisiesto...en fin las herramientas para resolver la duda ya estan. saludos.
Responder Con Cita
  #12  
Antiguo 11-12-2008
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
Si buscan una formula sin el año va a estar muy dificil, por ejemplo la formula:

semanadelaño = (mes-1)*4 + numerosemanames

Semanadelaño = (12-1)*4 + 4 //buscando la ultima semana de diciembre

semanadelaño = 48 //que el año no trae 52 semanas? y en algunos casos 53? hay meses que traen 5 semanas otros 4, es por eso que se necesita el año para el calculo.
Responder Con Cita
  #13  
Antiguo 12-12-2008
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
Perdonen por mi tardanza.
Estaba de viaje.
He leido todos los post y realmente interesantes.
Claro que dispongo del año, normalmente es el año en curso.
Por fin cual formula es la que me recomiendan?
saludos y gracias por todo.
Responder Con Cita
  #14  
Antiguo 13-12-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Pues cada uno te recomendará su fórmula

Supongo que eres tú el que tiene que valorar los pros y contras y elegir una u otra .

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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
formula.. truequeman Varios 3 20-01-2007 19:12:09
formula en dbgrid federicorl Varios 4 07-08-2006 18:58:36
Formula en Firebird jwmoreira Firebird e Interbase 4 17-05-2005 17:49:57
Almacenar una formula en una tabla jgutti Firebird e Interbase 1 09-09-2004 15:41:46
Campos calculados, fórmula mariajoiz Conexión con bases de datos 8 10-06-2003 14:10:10


La franja horaria es GMT +2. Ahora son las 18:48:09.


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