FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Formato de fechas y DateTimePicker.
hola, un saludo todos/as, vereis, estoy haciendo una pequeña aplicación en C++ Builder 6, en la que quiero sacar un listado de todo entre lafecha 1 y la fecha 2. El problema es que el DateTimePicker devuelve la fecha en formato Dia/Mes/Año, y yo necesito que me lo devuelva en Mes/Dia/Año, ya que para hacer el select, Interbase me pide que sea en el formato Mes/Dia/Año. He probado la opcion Format, pero esta propiedad solo sirve para que de forma visual solo se vea en ese formato, ya que DateTimePicker->Date lo devuelve de la forma en la que a mi no me interesa.
¿Alguna idea? Gracias de antemano. |
#2
|
||||
|
||||
Un DateTimePicker te devuelve una fecha en el tipo TDateTime, que si te das una vuelta por la ayuda, verás que es un número, que no tiene intrinsecamente ningún tipo de formato.
Existen varias funciones, entre ellas FormatDateTime, DateTimeToStr, DateToStr, etc que te ayudan a formatear fechas. Si es para pasarlo a una base de datos, es mejor el uso de parámetros en las sentencias SQL, por dos razones:
Si no sabes que son parámetros, y como asignarles valores en una sentencia SQL, te recomiendo usar la búsqueda de los foros, pues el tema se ha tratado multiples veces por aqui, y cualquier cosa dicha para delphi, valdrá igual para c++builder (en este caso). Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
|||
|
|||
fecha_formato
hola, no creo que sea lo mas optimo, pero quizas te ayude en algo, a pesar que no esta hecho en C++, pero seria cuestion de migrarlo nada mas, de hecho, lo que menciono jachguate es lo mas optimo.
Esta funcion podria ser mas sencilla para tu caso, pero yo la hice cuando necesité incluir los ceros a la izquierda en el mes y el dia. Chau. Funcion llamadora... procedure TForm1.Button1Click(Sender: TObject); begin form1.Edit1.Text:= form1.fecha_formato(datetostr(form1.DateTimePicker1.Date),'dd/mm/aa'); end; Funcion llamada... function tform1.fecha_formato(fecha,formato:string):string; var fecha_o,ch,d,m,a:string; aux,largo,i,u:integer; temp:string; vector:array[0..9] of string; begin i:=0; u:=i; aux:=0; largo:=length(fecha); while (i <= 9) do begin ch:=copy(fecha,i+1,1); if (ch <> '/') then begin vector[u]:=ch; aux:=aux + 1; i:=i+1; u:=u+1; end else begin if aux = 2 then begin i:=i+1; u:=i-1; aux:=0; end else begin temp:=vector[u - 1]; vector[u - 1]:='0'; vector[u]:=temp; aux:=0; i:=i+1; u:=u+1; end; end; end; fecha_o:=vector[0]; for i:=0 to largo - 2 do begin fecha_o:=fecha_o + vector[i + 1]; end; d:=copy(fecha_o,3,2); m:=copy(fecha_o,1,2); a:=copy(fecha_o,5,4); if formato = 'mm/dd/aa' then result:= d + '/' +m + '/' + a ; if formato = 'dd/mm/aa' then result:= m + '/' + d + '/' + a ; end; |
#4
|
|||
|
|||
Hola,
No es que sea hincha ni mucho menos pero mirá que lindo queda el código con las etiquetas DELPHI del foro: JoseBozzano, como veo que tenés pocos mensajes calculo que debés ser nuevo así que te doy la bienvenida. Por otro lado no sería malo que mirarás la guía de estilo del foro... http://www.clubdelphi.com/foros/guiaestilo.php Saludos!
__________________
Suerte .: Gydba :. Última edición por Gydba fecha: 23-08-2004 a las 21:56:00. Razón: Me faltó la url de la guía... |
#5
|
||||
|
||||
Señores!!! La solucion para el chamo solo consiste en establecer ShortDateFormat="mm/dd/yyyy"; antes de cualquier operacion a realizar con fechas con cualquier componente relacionado con las mismas.y ya!. Esta es una variable global en Builder, supomgo q su Delphi puede q tambièn lo tenga!
|
#6
|
||||
|
||||
Creo que no has captado bien el tema, una cosa es el formato de fecha que tengamos, corto, largo, mm/dd/yy .... y otra es que si utilizamos un TDateTimePicker éste almacena fecha y hora y si nos queremos llevar solamente la hora o la fecha, de que manera tenemos que interactuar con este control.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#7
|
||||
|
||||
Cita:
// Saludos |
#8
|
||||
|
||||
Para marcoszorrilla:El DateTimePicker y creo q por lo general el resto de componentes se rigen bajo este formato (es decir, el q tenga la variable ShortDateFormat), si interactuamos con bases de datos usando estos componentes puede q no no obtengamos los resultados esperados, particularmente tenia este problema con Interbase y la solucion fue simple y llanamente alterar el formato de la variable, a partir de ahi en ella si se almacenaba lo q esperaba y para mostrar al usuario la retorno a su estado original y el DateTimePicker trabajaba de acuerdo a ella, en cuanto a la hora no veo en q parte esta escrito algo referente a ella (en aoiTo) solo veo q tiene o tenia un problema con el formato.
Para roman: Me disculpo primeramente si en algun momento mi vocabulario los llego a provocar, no escribi en "tono" de regaño sino de "buena noticia", en cuanto al tiempo no considero q si han pasado años de haberse formulado la pregunta sea ese el motivo para no contestarla (tambien lo hago en algunos otros foros) puesto q hay usuarios q pueden explorar este foro y ver soluciones a sus inquietudes asi sean algo viejas (como yo!!! he encontrado soluciones aunque la pregunta ha sido mas vieja q Matusalèn), con respecto al uso de una funciòn no mencionè q fuera invàlida simplemente intentè dar una solucion mas corta (aunque reconozco q no es la mejor si uso fechas con hilos, no me topado con ese caso), ignorarè como siempre la fecha de la pregunta pero si mejorarè la manera de expresarme....................................... Saludos! |
#9
|
||||
|
||||
Cita:
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#10
|
|||
|
|||
Problemas con la fechas
Para este problema, si sólo quieres grabar la fecha del DateTimePicker sólo pones:
Fecha:=DateTimepicker1.date; Hora:=DateTimepicker1.time; aca ya tienes la hora y la fecha del date time picker |
|
|
|