CSPromex
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.


Programadores dedicados a C sharp .Net, eres nuevo, experto o quieres aprender a programar en C Sharp, aquí encontraras todo lo que necesitas.
 
ÍndiceBuscarÚltimas imágenesChatRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Últimos temas
» Sockets Conexion,Envio y recepcion de datos (mini-chat Cliente-Servidor)
Obtener y cambiar la hora/fecha del sistema. I_icon_minitimeSáb Sep 30, 2023 6:24 pm por EurekaMartin

» Graficos: Grafica circular
Obtener y cambiar la hora/fecha del sistema. I_icon_minitimeMar Mar 05, 2019 4:58 pm por Luis Garcia

» Calendario hecho Manualmente
Obtener y cambiar la hora/fecha del sistema. I_icon_minitimeMar Mar 05, 2019 3:52 pm por Luis Garcia

» Activar el protector de pantalla.
Obtener y cambiar la hora/fecha del sistema. I_icon_minitimeMar Mar 05, 2019 3:12 pm por Luis Garcia

» Hacer backup de MySql desde C#
Obtener y cambiar la hora/fecha del sistema. I_icon_minitimeMar Abr 18, 2017 10:04 pm por maurifl

» Sockets programa para Ciber Cafe (Cliente-Servidor)
Obtener y cambiar la hora/fecha del sistema. I_icon_minitimeLun Ago 10, 2015 5:45 pm por artes

» Ayuda crear emoticones en un chat
Obtener y cambiar la hora/fecha del sistema. I_icon_minitimeDom Jul 12, 2015 9:00 pm por yeco96

» Necesito ayuda para pasar datos a un Datagridview
Obtener y cambiar la hora/fecha del sistema. I_icon_minitimeDom Jun 07, 2015 4:33 pm por rafaelfa

» Reproductor de música->Lista de reproducción (Guardar-Cargar)
Obtener y cambiar la hora/fecha del sistema. I_icon_minitimeLun Jun 01, 2015 3:00 pm por kevin22

Buscar
 
 

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

 

 Obtener y cambiar la hora/fecha del sistema.

Ir abajo 
AutorMensaje
Guillermo Javier Salazar
STAFF TEAM
STAFF TEAM
Guillermo Javier Salazar


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

Obtener y cambiar la hora/fecha del sistema. Empty
MensajeTema: Obtener y cambiar la hora/fecha del sistema.   Obtener y cambiar la hora/fecha del sistema. I_icon_minitimeMié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
https://cspromex.activo.mx
 
Obtener y cambiar la hora/fecha del sistema.
Volver arriba 
Página 1 de 1.
 Temas similares
-
» Modificar la fecha de creación y modificación de un archivo.
» Obtener datos de excel
» Minimizar formulario a bandeja de sistema
» Obtener carpetas, archivos y unidades
» Cambiar la escala en "X" de un componente chart

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