Foros del Web » Programación para mayores de 30 ;) » .NET »

La hora de la PDA no actualiza bien

Estas en el tema de La hora de la PDA no actualiza bien en el foro de .NET en Foros del Web. Hola a todos. Estoy intentando actualizar la fecha de una PDA, sincronizandola con un servidor, con un programa hecho por mi. El programa está hecho ...
  #1 (permalink)  
Antiguo 23/04/2009, 03:33
 
Fecha de Ingreso: abril-2009
Mensajes: 1
Antigüedad: 15 años
Puntos: 0
La hora de la PDA no actualiza bien

Hola a todos.

Estoy intentando actualizar la fecha de una PDA, sincronizandola con un servidor, con un programa hecho por mi. El programa está hecho con c#. Aparentemente el programa está bien, pero después de hacer un hard reset a la PDA, si ejecuto el programa sin cambiar nada, excepto la hora, se actualiza todo bien, minutos y segundos incluidos. Pero si cambio la hora, poniendo cualquier hora, después de hacer un hard reset y antes de ejecutar el programa, la hora se actualiza bien, junto con lo demás. Me gustaría que la hora se actualizara sin la necesidad de hacer ningún cambio antes de la ejecución.

este es el código de mi programa:

/////Function thas start the updating/////
private void ActualizarFecha()
{
try
{

DateTime fechaServidor = this.Servidor.fFechaServidor();

Utiles.ActualizarFecha(fechaServidor);


}
catch
{
TLog.AddError("Error al actualizar la fecha/hora de la maquina");
}
}

/////Servidor/////
public override DateTime fFechaServidor()
{
String strSQL;
System.DateTime result = System.DateTime.UtcNow;

strSQL = "SELECT getutcdate() AS fecha";
_cmSQL.CommandText = strSQL;
this._drSQL = _cmSQL.ExecuteReader();
if (this._drSQL.Read())
{
result = Convert.ToDateTime(this._drSQL["fecha"]);
}
this._drSQL.Close();

return result;
}

/////Utiles/////
public static void ActualizarFecha(System.DateTime paramFecha)
{
#if PDA
SystemTime st = new SystemTime();

GetSystemTime(ref st);
st.wYear = Convert.ToUInt16(paramFecha.Year);
st.wMonth = Convert.ToUInt16(paramFecha.Month);
st.wDay = Convert.ToUInt16(paramFecha.Day);
st.wHour = Convert.ToUInt16(paramFecha.Hour);
st.wMinute = Convert.ToUInt16(paramFecha.Minute);
st.wSecond = Convert.ToUInt16(paramFecha.Second);
st.wMilliseconds = Convert.ToUInt16(paramFecha.Millisecond);
SetSystemTime(ref st);
#endif
}

Antes de hacer un hard reset, la fecha en el PDA es 01 de septiembre de 2007, 0:00 . Pero cuando depuro el programa, System.DateTime.UtcNow , a veces (normalmente por las mañanas), devuelve 01/09/07 8: xx: xx y otras veces (normalmente por las tardes), devuelve 31/08/2007 23: xx: xx . Y GetSystemTime(ref st) a veces (por las mañanas) devuelve st.wYear = 2007, st.wMonth = 9, st.wDay = 1 y st.wHour = 8, y otras veces (por las tardes) st.wYear = 2007, st.wMonth = 8, st.wDay= 31 y st.wHour = 23. Y aunque cambio los valores de st, SetSystem(ref st) no actualiza bien la hora de la PDA.

Alguien sabe por qué sucede esto? Y ¿cómo puedo solucionar el problema?

Mi PDA es una HP iPAQ 214 con sistema operativo windows mobile 6.

Muchas gracias por vuestra atención.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:57.