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 18-08-2012
rufo rufo is offline
Miembro
 
Registrado: jul 2006
Posts: 240
Poder: 18
rufo Va por buen camino
Como juntar la fecha de unos edits en una sola

Hola amigos buenas tardes, mi titulo es un poco confuso pero les planteo el problema resulta que tengo 3 edits de los cuales cada uno de ellos pongo la fecha es decir, el 1 edit pongo el dia, el 2 edit porngo el nombre del mes, y el 3 edit pongo el año, lo que quiero saber si hay forma de que al guardar esa informacion se vuela en una sola fecha, en un solo campo les pongo un ejemplo:


15 AGOSTO 2012 ---- Esto seria como lo escribo en los edits

15/08/2012---------- Esto quisiera la forma en que se almacenara


Bueno espero me ayuden, un dato mas lo quiero almacenar en access 2010 y uso delphi 2007, de antemano gracias.
Responder Con Cita
  #2  
Antiguo 18-08-2012
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Para ingresar fechas existen controles más apropiados... como el TDateTimePicker, o el TMonthCalendar.

Si aún lo quieres hacer con TEdits, para "construir" la fecha utiliza EncodeDate().

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 18-08-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Sin mucha complicacion a lo novato:

Código Delphi [-]
var
  Form1: TForm1;
  dato2: string;

implementation

{$R *.dfm}

procedure TForm1.dato;
begin
   if edit2.text = 'enero' then
   begin
   dato2:= '/01/';
   end else
   if edit2.text = 'febrero' then
   begin
   dato2:= '/02/';
   end else
   if edit2.text = 'marzo' then
   begin
   dato2:= '/03/';
   end else
   if edit2.text = 'abril' then
   begin
   dato2:= '/04/';
   end else
   if edit2.text = 'mayo' then
   begin
   dato2:= '/05/';
   end else
   if edit2.text = 'junio' then
   begin
   dato2:= '/06/';
   end else
   if edit2.text = 'julio' then
   begin
   dato2:= '/07/';
   end else
   if edit2.text = 'agosto' then
   begin
   dato2:= '/08/';
   end else
   if edit2.text = 'septiembre' then
   begin
   dato2:= '/09/';
   end else
   if edit2.text = 'octubre' then
   begin
   dato2:= '/10/';
   end else
   if edit2.text = 'noviembre' then
   begin
   dato2:= '/11/';
   end else
   if edit2.text = 'diciembre' then
   begin
   dato2:= '/12/';
   end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  dato;
  showmessage(edit1.Text+dato2+edit3.Text);
end;

Saludos
__________________
Siempre Novato
Responder Con Cita
  #4  
Antiguo 20-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola rufo.

Como te dijo Delphius, con otros componentes la taréa se simplifica muchísimo...

Usando edits, vas a tener que realizar varias comprobaciones para que sea realmente operativo (nunca se sabe que ingresará el usuario).

Básicamente es la idea que te ya te dió mi amigo : Comparar la cadena ingresada en Edit2 con los meses del año.

Te pongo una función que incluye la comprobación y acorto la comparación de meses aprovechando la variable LongMonthNames, pero los nombres de los meses dependerán de la configuración regional. Y si no estas seguro cuál tendrá el S.O, es mejor que utilices una solución como la que te sugirió Caral.
Código Delphi [-]
(* Devuelve dd/mm/aaaa o cadena vacía si hay error *)
function ComponeFecha(Dia, Mes, Anio: string): string;
{$J+}
const DM: array[1..12] of Byte=(31,28,31,30,31,30,31,31,30,31,30,31);
{$J-}
var
  m,d,a: Integer;
  v: array of string;
begin
  DM[2]:= 28; 

  SetLength(v, 12);
  for m  := 0 to 11 do v[m] := UpperCase(LongMonthNames[m+1]);
 
  m := AnsiIndexStr(UpperCase(mes), v) + 1;
  if TryStrToInt(Dia, d) and (m > 0) and TryStrToInt(Anio,a) then
  begin
     if (((a mod 4) = 0)and((a mod 100) <> 0)or(a mod 400 = 0)) then Inc(DM[2]);
     if d in [1..DM[m]] then
      Result := StringOfChar('0', 2-Length(Dia)) + Dia + '/' +
        StringOfChar('0', 2-Length(IntToStr(m))) + IntToStr(m) + '/' + Anio;
  end;
end;

Llamada:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(ComponeFecha(Edit1.Text, Edit2.Text, Edit3.Text));
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 20-08-2012
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola,
Ecfisa, ya existe una función que determina si un año es bisiesto

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #6  
Antiguo 20-08-2012
rufo rufo is offline
Miembro
 
Registrado: jul 2006
Posts: 240
Poder: 18
rufo Va por buen camino
Ok amigos gracias por darme ejemplos los probare y les dire cual fue mi resultado.
Responder Con Cita
  #7  
Antiguo 20-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por Delphius Ver Mensaje
Hola,
Ecfisa, ya existe una función que determina si un año es bisiesto

Saludos,
Hola.

No conocía la función, gracias por el dato

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 21-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Para aportar mas datos de la función IsLeapYear (que no conocía), esta es la implementación que tiene en SysUtils :
Código Delphi [-]
function IsLeapYear(Year: Word): Boolean;
begin
  Result := (Year mod 4 = 0) and ((Year mod 100 <> 0) or (Year mod 400 = 0));
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 21-08-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.078
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Para aportar mas datos de la función IsLeapYear (que no conocía), esta es la implementación que tiene en SysUtils :
Código Delphi [-]function IsLeapYear(Year: Word): Boolean; begin Result := (Year mod 4 = 0) and ((Year mod 100 <> 0) or (Year mod 400 = 0)); end;


Saludos.

Es que se han copiado de tu código y seguro que no te pagan derechos de autor
Responder Con Cita
  #10  
Antiguo 21-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Es que se han copiado de tu código y seguro que no te pagan derechos de autor
Si, eso mismo fué lo primero que pensé ni bién lo ví. Así que ya mismo avisé a mi bufete de abogados para que se encargen del tema.

¡ Ya verás que no la sacarán barata !

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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 juntar en un Dbgrid varias celdas nikata Varios 0 18-10-2007 10:09:48
Juntar dos registros en una sola en QuickReport enecumene Impresión 13 09-09-2007 22:52:31
Juntar contenido de varias tablas en una sola. Chris SQL 3 16-08-2007 21:14:21
Juntar fecha y hora para consulta SQL Iuconlas SQL 6 21-02-2007 12:16:40
Como Juntar dos proyectos en uno? mrmanuel OOP 4 09-07-2003 19:58:01


La franja horaria es GMT +2. Ahora son las 10:54:51.


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