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 07-12-2014
JuanOrtega JuanOrtega is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 130
Poder: 13
JuanOrtega Va por buen camino
Cambiar solo la hora en Delphi

Hola estoy tratando de cambiar solo la hora en delphi , me estoy basando en este codigo :

Código Delphi [-]
var
 MyNewTime: _SYSTEMTIME;
begin
// primero llenamos la estructura
 with MyNewTime do
  begin
   wYear        := 2004; // año
   wMonth       := 8;    // agosto
   wDayOfWeek   := 5;    // jueves
   wDay         := 19;   // día del mes
   wHour        := 01;   // hora
   wMinute      := 55;   // minutos
   wSecond      := 00;   // segundos
   wMilliseconds:= 00;   // milisegundos
  end;
// luego la aplicamos
 SetSystemTime(MyNewTime);

A lo que llegue a esto :

Código Delphi [-]
program test;

{$APPTYPE CONSOLE}
{$R *.res}


uses
  System.SysUtils, ShellApi, Windows,Winapi.Messages;

function change_time():string;
var
MyNewTime: _SYSTEMTIME;
begin

with MyNewTime do
begin
wHour := 1;
end;
SetSystemTime(MyNewTime)
end;

begin
  try
    change_time();
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;

end.

El tema es que este codigo no me cambia la hora ni en modo normal ni como administrador , creo que los demas parametros son obligatorios pero yo solo quiero cambiar la hora del sistema no desconfigurar todo.

Nota : Estoy usando Delphi XE2 en Windows Seven

¿ Hay alguna forma de hacer lo que quiero ?

Última edición por JuanOrtega fecha: 07-12-2014 a las 17:02:10.
Responder Con Cita
  #2  
Antiguo 07-12-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Y para que quieres hacer eso?
__________________
El malabarista.
Responder Con Cita
  #3  
Antiguo 07-12-2014
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 Lepuke.

Tampoco me queda en claro la finalidad... Pero intentá de este modo:
Código Delphi [-]
program test;

{$APPTYPE CONSOLE}

uses
  SysUtils, Windows;

procedure ChangeSysTime(const aTime: TDateTime);
var
  SystemTime: TSystemTime;
begin
  DateTimeToSystemTime(Date + aTime, SystemTime);
  SetLocalTime(SystemTime);
end;

// main
begin
  ChangeSysTime(StrToTime('01:39:10 pm'));
end.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 07-12-2014
JuanOrtega JuanOrtega is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 130
Poder: 13
JuanOrtega Va por buen camino
Funciona pefecto , gracias por la ayuda efcisa.

El unico problema es que tuve que cambiar la linea a :

Código Delphi [-]
ChangeSysTime(StrToTime('09:00:00'));

Última edición por JuanOrtega fecha: 07-12-2014 a las 18:17:22.
Responder Con Cita
  #5  
Antiguo 08-12-2014
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 16
orodriguezca Va por buen camino
Para que?

No se para que lo necesite Lepuke pero en otra época, cuando aún internet era un lujo y no había mucha divulgación de servidores de tiempo esta era la forma fácil de mantener sincronizada la hora de los PCs de nuestra red local con la hora del servidor.
Responder Con Cita
  #6  
Antiguo 08-12-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por orodriguezca Ver Mensaje
Para que?
No se para que lo necesite Lepuke pero en otra época, cuando aún internet era un lujo y no había mucha divulgación de servidores de tiempo esta era la forma fácil de mantener sincronizada la hora de los PCs de nuestra red local con la hora del servidor.
Nunca se me ocurrió cambiarle la hora al cliente para que esté sincronizado con el servidor, ¿por qué? hay varios motivos, pero uno importante es: ¿y si el cliente está en otro lugar y tiene una hora diferente?

Para tomar la hora del servidor lo que se hace es tomarlo del propio servidor, ejemplo, si guardas una factura con la fecha de la misma, haces un select de la propia base de datos (que está en el servidor, obviamente)
Código SQL [-]
select current_date, current_timestamp
from rdb$database;
De esa forma, da igual la fecha y hora que tenga cada cliente, ya que las fechas y horas se tomarán siempre del servidor.
Responder Con Cita
  #7  
Antiguo 08-12-2014
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 16
orodriguezca Va por buen camino
Totalmente de acuerdo contigo casimiro, yo hoy no lo haría de otra forma: Hay que tomar la hora del servidor.

Mi anotación iba encaminada a que en otra época, cuando no había Internet y lo mas ambicioso que se podia hacer era construir una red de area local, cuando no existía un gestor de bases de datos sino que los .dbf y los .dat eran los reyes de los datos era, en ese entonces, buena idea tener la hora de los pc sincronizados. Hoy no se me ocurre una buena excusa para lo mismo.
Responder Con Cita
  #8  
Antiguo 08-12-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Épocas prehistóricas
Responder Con Cita
  #9  
Antiguo 08-12-2014
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 16
orodriguezca Va por buen camino
Bueno, meditando un poco más encontré una excusa: Se puede tener más de un servidor.

Es posible que una sola transacción de origen a la actualización de más de una base de datos y cada una de ella sobre diferentes servidores. Suponiendo que cada cada uno de estos servidores estén en la misma sala seria deseable que cada uno de ellos tuvieran la misma fecha-hora. Bueno, eso pienso Yo. Aunque hoy día esa es una preocupación menor porque finalmente todos se sincronizan con algún servidor de tiempo cuando se instala el SO.
Responder Con Cita
  #10  
Antiguo 08-12-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es que no puedes meter un programita que cambie la hora a un servidor ¿qué hora?, ¿la que alguien le diga?
Debe ser algo automático, lo más exacto posible y totalmente ajeno a los clientes.
Es que eso se convierte en un coladero de seguridad tremendo. Y que traerá muchos problemas, seguro.
Responder Con Cita
  #11  
Antiguo 08-12-2014
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 16
orodriguezca Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Épocas prehistóricas


Y sin embargo es de las correcciones más frecuentes que se le hacen a los nuevos desarrolladores (java o dot net) porque siempre tienden tomar la hora del servidor/PC sobre el que corre la aplicación y no de la base de datos.
Responder Con Cita
  #12  
Antiguo 08-12-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por orodriguezca Ver Mensaje
Y sin embargo es de las correcciones más frecuentes que se le hacen a los nuevos desarrolladores (java o dot net) porque siempre tienden tomar la hora del servidor/PC sobre el que corre la aplicación y no de la base de datos.
No lo sabía
Responder Con Cita
  #13  
Antiguo 08-12-2014
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 16
orodriguezca Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Es que no puedes meter un programita que cambie la hora a un servidor ¿qué hora?, ¿la que alguien le diga?
Debe ser algo automático, lo más exacto posible y totalmente ajeno a los clientes.
Es que eso se convierte en un coladero de seguridad tremendo. Y que traerá muchos problemas, seguro.
Por eso digo, hoy no lo hace un "programita", es función del sistema operativo y casi siempre contra un servidor NTP ya sea sobre Internet o interno .


PosTdata: Seria bueno que el compañero Lepuke nos contara sus intenciones y salimos de la intriga y las conjeturas.
Responder Con Cita
  #14  
Antiguo 08-12-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por orodriguezca Ver Mensaje
Por eso digo, hoy no lo hace un "programita", es función del sistema operativo y casi siempre contra un servidor NTP ya sea sobre Internet o interno .
Siempre he procurado tener aislados los servidores de internet. Conectar solamente para alguna actualización y volver a dejarlo sin internet. Si tienen que conectar desde fuera es mejor poner un servidor web intermedio y que sea éste el que se conecte al servidor de bases de datos. Pero siempre aislar el servidor de bases de datos de internet.
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
Cómo mostrar solo la hora de un campo DateTime en un grid FerCastro SQL 2 03-09-2008 17:15:35
Guardar Solo Hora usando DateTimePicker georgejg Conexión con bases de datos 6 23-03-2008 10:12:29
cambiar la hora sin am/pm?? ale_metall Varios 3 16-11-2007 13:29:04
componenete que solo te recupere la hora en delphi richy08 Varios 5 11-10-2007 09:58:59
Solo quiero la hora de un campo Fecha/Hra en Qreport suseLinux Impresión 2 12-12-2006 02:37:39


La franja horaria es GMT +2. Ahora son las 20:56:40.


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