Programadores dedicados a C sharp .Net, eres nuevo, experto o quieres aprender a programar en C Sharp, aquí encontraras todo lo que necesitas.
 
ÍndiceCalendarioFAQBuscarMiembrosGrupos de UsuariosChatRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Últimos temas
Buscar
 
 

Resultados por:
 
Rechercher Búsqueda avanzada
Síguenos:
Crear foro Crear foro Crear foro

Comparte | 
 

 Obtener y cambiar la hora/fecha del sistema.

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Guillermo Javier Salazar
STAFF TEAM
STAFF TEAM


Mensajes : 181
Puntos : 349
Localización : México
Comentarios : El azar favorece a una mente preparada.

MensajeTema: Obtener y cambiar la hora/fecha del sistema.   Miér Mar 09, 2011 8:18 pm

Obtener y cambiar la hora/fecha del sistema.

Para poder obtener la fecha y hora de nuestro sistema, asi como para modificarla utilizaremos unas APIs, para obtener la fecha/hora lo podemos hacer sin utilizar una API, solamente llamando a la clase Datetime:

DateTime.Now.ToString() // Nos devolverá una cadena que contiene fecha y hora

Pero en este caso utilizaremos una API para obtenerla, ya que necesitamos un formato, primero importamos la libreria:

using System.Runtime.InteropServices;

Ahora declaramos las APIs, Get y Set SystemTime, las cuales nos devolverán o cambiaran la fecha/hora del sistema:

-----------------------------------------------------
[DllImport("kernel32.dll")]
private extern static void GetSystemTime(ref SYSTEMTIME Time);
[DllImport("kernel32.dll")]
private extern static uint SetSystemTime(ref SYSTEMTIME Time);
-----------------------------------------------------

Ahora declaramos un struct que nos servirá como base para crear el formato de fecha/hora:

-----------------------------------------------------
private struct SYSTEMTIME
{
public ushort Year;
public ushort Month;
public ushort DayOfWeek;
public ushort Day;
public ushort Hour;
public ushort Minute;
public ushort Second;
public ushort Milliseconds;
}
-----------------------------------------------------

Y ahora simplemente para conocer la hora/fecha ejecutamos lo siguiente:

-----------------------------------------------------
SYSTEMTIME systime = new SYSTEMTIME();
GetSystemTime(ref systime);
-----------------------------------------------------
donde la variable systime contiene todos los datos de la fecha y hora, para acceder a ellos simplemente describimos lo que necesitamos:

systime.Hour.ToString() //nos devuelve una cadena que nos dice la hora
systime.Day.ToString() //nos devuelve una cadena que nos dice el dia
... // y todo lo demás.

Ahora para poderla modificar invocamos el método SetSystemTime, y le mandamos como parámetro el formato de la nueva hora/fecha:

-----------------------------------------------------
SYSTEMTIME systime = new SYSTEMTIME();
GetSystemTime(ref systime);

systime.Hour = (ushort)(5); //Pongo como hora las 5
SetSystemTime(ref systime);
-----------------------------------------------------

Ojo, debes de tener completo el formato, en el ejemplo anterior solo le modifico la hora, entonces no tiene caso que llene manualmente cada campo del formato, para eso hago un Get, para que automáticamente se llene cada campo de mi formato y luego solamente modifico la hora, asi dejo todos los demás campos del formato intactos.

Nota: El método GetSystemTime nos devuelve la hora universal cordinado (UTC), para obtener tu hora local debes restar o sumar el numero dependiendo de tu zona horaria, por ejemplo: las 24 horas (UTC) son las 19 horas Nueva York, hubo una diferencia de menos 5 horas.

También, si ejecutas este código desde un IDE no te funcionara, ya que para ello necesitas permisos de administrador, para probarlo ve al ejecutable y dale click derecho - ejecutar como administrador (Aquellos que tengan WVista o Win7 como yo).
Volver arriba Ir abajo
Ver perfil de usuario http://cspromex.activo.mx
 
Obtener y cambiar la hora/fecha del sistema.
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.
 Temas similares
-
» Cómo cambiar la hora del reloj?
» Como cambiar la hora del foro
» Cambiar formato de fecha de registro
» Cambiar formato de fecha en los post
» No logro cambiar la hora del foro

Permisos de este foro:No puedes responder a temas en este foro.
CSPromex :: PROGRAMACIÓN EN C# :: Código abierto-
Cambiar a: