 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Laura Invitado
|
Publicado: Lun 07 Jul, 2003 4:11 pm Asunto: Sobre Fechas |
|
|
Hola a todos,
a ver si podeis ayudarme, me gustaría poder cambiar la hora en la que un día empieza.
Me explico: el día 2 de julio empieza a las 00.00 AM, cómo podría hacer para que empezara a las 12.00??
Merci,
Laura |
|
| Volver arriba |
|
 |
el diego Master


Registrado: 23 Ago 2002Mensajes: 232Ubicación: Paris
|
Publicado: Lun 07 Jul, 2003 4:19 pm Asunto: |
|
|
| Podrias dar un ejemplo de para que lo querés utilizar? Porque podrias hacer algo asi como sumarle 12 (o la diferencia que quieras) a la hora actual. |
|
| Volver arriba |
|
 |
Laura Invitado
|
Publicado: Lun 07 Jul, 2003 4:55 pm Asunto: |
|
|
Buenas,
ante todo gracias, pero quisiera saber si existe alguna función, método etc para saber si puedo cambiar el formato de la fecha o algo parecido.
Merci,
Laura |
|
| Volver arriba |
|
 |
el diego Master


Registrado: 23 Ago 2002Mensajes: 232Ubicación: Paris
|
Publicado: Lun 07 Jul, 2003 5:11 pm Asunto: |
|
|
Hola Laura,
La verdad que ni idea. Por eso te preguntaba para qué era y asi usar un poco el ingenio  |
|
| Volver arriba |
|
 |
Kosky Ens


Registrado: 17 Jun 2003Mensajes: 40Ubicación: Sant Joan de les Abadesses
|
Publicado: Lun 07 Jul, 2003 5:43 pm Asunto: Control fechas |
|
|
Hola Laura,
jo tambien estoy interesado en esa funcion o metodo, incluso me gustaria tambien saber si es possible saber si cierto dia es sabado o domingo, esto en Visual FoxPro es possible, lo q no se es si en C++ lo es.
la funcion que pides tb es possible con Visual FoxPro pero en C++ tampoco la encuentro
Lo siento por no ajudarte, pero voy a investigar a la que sepa qualquier cosa la posteo
Oscar |
|
| Volver arriba |
|
 |
el diego Master


Registrado: 23 Ago 2002Mensajes: 232Ubicación: Paris
|
Publicado: Lun 07 Jul, 2003 5:49 pm Asunto: Re: Control fechas |
|
|
Kosky,
Lo que tenes que usar es "DayOfWeek". Extraido de la ayuda:
| Código: | void __fastcall TForm1::Button1Click(TObject *Sender)
{
char days[7][10] = {"Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado" };
TDateTime dtDate = StrToDate(Edit1->Text);
ShowMessage(Edit1->Text + AnsiString(" est un ") + days[dtDate.DayOfWeek() - 1]);
} |
suerte |
|
| Volver arriba |
|
 |
Kosky Ens


Registrado: 17 Jun 2003Mensajes: 40Ubicación: Sant Joan de les Abadesses
|
Publicado: Lun 07 Jul, 2003 7:15 pm Asunto: El codigo funciona correctamente. |
|
|
Gracias, era la funcion que estaba buscando, pero podriais contestar a Laura, pq estoy interesado en ese metodo, si mas no, estaria interesado en un codigo que me ilustrara el formateo de datas ( sumar horas, minutos, dias ...)
Gracias |
|
| Volver arriba |
|
 |
l4z4rillo Cdt


Registrado: 02 Nov 2002Mensajes: 10
|
Publicado: Lun 07 Jul, 2003 7:48 pm Asunto: |
|
|
Pues con el método SetLocaleInfo accedes a la configuración regional:
SetLocaleInfo(LOCALE_ITIME, LOCALE_STIMEFORMAT, "hh:mm");
la h minuscula son 12 horas i la H mayuscula son 24 horas. _________________ I still believe in my own future.
l4z4rillo. |
|
| Volver arriba |
|
 |
el diego Master


Registrado: 23 Ago 2002Mensajes: 232Ubicación: Paris
|
Publicado: Mar 08 Jul, 2003 9:12 am Asunto: |
|
|
Bueno ya les contesto l4z4rillo. Realmente no habia entendido del todo que era lo que querian. Cosas que pasan
suerte
diego |
|
| Volver arriba |
|
 |
Kosky Ens


Registrado: 17 Jun 2003Mensajes: 40Ubicación: Sant Joan de les Abadesses
|
Publicado: Mar 08 Jul, 2003 9:25 am Asunto: |
|
|
no se si esta era la duda de Laura, pero lo dudo, por mi parte lo que pido es un pequeño codigo que me muestre como sumar horas a un campo hora de access, por ejemplo, sumar 24 horas a una hora, o sumarles 2 dias a un dia, o sumarles 15 minutos a una hora.
gracias |
|
| Volver arriba |
|
 |
el diego Master


Registrado: 23 Ago 2002Mensajes: 232Ubicación: Paris
|
Publicado: Mar 08 Jul, 2003 9:56 am Asunto: |
|
|
No sé si hay (pegue una mirada en el help y no vi nada que se asemeje). Por otro lado lo que tendrias que hacer, por ejemplo, es agarrar la fecha, pasarla a texto (DateToStr) y utilizar la parte que te interesa. Ejemplo:
| Código: | AnsiString pepe= DateToStr(Date()); //"22/06/03"
AnsiString dia = pepe.SubStr(1,2); //"22"
int ndia = dia.ToInt(); //22
ndia= ndia+7; //30 |
De esta manera incrementaste en uno el dia. Luego te resta volver a ensamblar la fecha en sentido contrario (StrToDate()).
si la cosa no camina avisame y esta noche (ahora no puedo) te doy una mano con las funciones.
suerte. |
|
| Volver arriba |
|
 |
Kosky Ens


Registrado: 17 Jun 2003Mensajes: 40Ubicación: Sant Joan de les Abadesses
|
Publicado: Mar 08 Jul, 2003 10:16 am Asunto: |
|
|
ufff, pero asi le veo muchos problemas, como controlo final de mes? como se si son 30 o 31 dias, i si sumo horas como se que paso de dia ?
en Fox hay diferentes funciones que te suman sin tener que controlar tantos factores.
No se si me he explicado.
Yo estoy buscando pero es nula la info que encuentro con este tema |
|
| Volver arriba |
|
 |
Laura Invitado
|
Publicado: Mar 08 Jul, 2003 10:32 am Asunto: |
|
|
Holas,
quería comentaros que yo también me he mirado la ayuda y creo que en profundidad y no he encontrado nada, e incluso a nivel de configuración del PC y res!!
Así que intentaré buscar algo, ya se que lo más parecido es crear una función que me sume 12 horas, pero como dice kosky es laborioso, así que seguiré buscando y bueno si alguien sabe algún método mejor, que nos ayude.
Igualmente gracias a todos por ayudarme,
Laura |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Mar 08 Jul, 2003 11:59 am Asunto: Formato de horas |
|
|
Laura
¿Has mirado la configuración regional de Windows? La solución que te han dado de usar LOCAL_STIMEFORMAT es la que uso yo, y a mi me funciona bien. En el constructor de la aplicación puedes incluir los formatos que hacen falta:
| Código: | WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR cmdLine, int)
{
ShortTimeFormat = "hh:mm AM/PM";
ShortDateFormat = "DD/MM/YYYY";
DateSeparator = '/';
... Etc. |
Si consultas la ayuda de FormatDateTime tienes todos los formatos; para un "reloj" de 12 horas has de añadir el indicativo de AM/PM, de hecho el ejemplo que viene en esta ayuda usa ese tipo de "reloj":
| Código: | AnsiString S = "The meeting is on ";
S = S + FormatDateTime("dddd, mmmm d, yyyy ' at ' hh:mm AM/PM", Now() + 0.125) |
Si tomamos, por ejemplo, que Now() valiera 08/07/2003 15:00:00, el mensaje sería este:
| Cita: | | The meeting is on Tuesday, July 8, 2003 at 18:00:00 |
porque el 0,125 que se suma a Now() son tres horas. La diferencia entre poner una o dos haches es sólo a la hora de presentarlo: con un hache te muestra una o dos posiciones, con dos te presenta siempre dos posiciones.
| Cita: | Máscara h:m AM/PM
» Con h:m las 9h 3min se muestran como 9:3 AM y las 21h 3min como 9:3 PM
Máscara hh:mm AM/PM
» Con h:m las 9h 3min se muestran como 09:03 AM y las 21h 3min como 09:03 PM |
A mi la prueba me ha funcionado.
Kosky
Mira bien la ayuda de TDateTime. Entre otros métodos tienes los operadores +=, ++, etc.
Recuerda, de todas formas, que internamente Builder ve las fechas y horas como un número con decimales, de forma que la parte entera del número es la fecha, empezando a contar desde las 0 horas del 30 de diciembre de 1899 y la parte decimal la hora en fracción de día; por ejemplo:
| Cita: | | Las 18:41:46 del día 8 de julio de 2003, internamente sería el número 37810,779; 37810 son los días transcurridos desde aquella fecha y 0,779 es la fracción de día trascurrida desde las 0 horas |
Tal vez esta forma de trabajar te pueda valer: Cada hora es 1/24 (0,04166 ) de día; es más fácil controlar ese tipo de cosas que el si me paso de 24 horas para cambiar de día o si el mes es de 28, 30 ó 31 días: ¡Qué se encargue el Builder de esos controles! _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|