Книга: Программирование КПК и смартфонов на .NET Compact Framework

Системное время

Системное время

Чтобы получить или установить системное время на устройстве, нужно использовать функции GetSystemTime и SetSystemTime. Следует учитывать, что функция GetSystemTime возвращает время по Гринвичу, а не местное время. Код, иллюстрирующий применение этих функций, приведен в листинге 13.14.

Листинг 13.14

using System.Runtime.InteropServices;
[DllImport("coredll.dll")]
private extern static void GetSystemTime(ref SYSTEMTIME lpSystemTime);
[DllImport("coredll.dll")]
private extern static uint SetSystemTime(ref SYSTEMTIME lpSystemTime);
private struct SYSTEMTIME {
 public ushort wYear;
 public ushort wMonth;
 public ushort wDayOfWeek;
 public ushort wDay;
 public ushort wHour;
 public ushort wMinute;
 public ushort wSecond;
 public ushort wMilliseconds;
}
private void GetTime() {
 // Получим системное время
 SYSTEMTIME st = new SYSTEMTIME();
 GetSystemTime(ref st);
 DateTime dt = DateTime.UtcNow.ToLocalTime();
 // Выводим сообщение
 MessageBox.Show("Текущее время: " + st.wHour.ToString() + ":" +
  st.wMinute.ToString());
}
private void SetTime() {
 // Сначала получим системное время
 SYSTEMTIME st = new SYSTEMTIME();
 GetSystemTime(ref st);
 // А теперь прибавим один час
 st.wHour = (ushort)(st.wHour + 1 % 24);
 SetSystemTime(ref st);
 MessageBox.Show("Новое время: " + st.wHour.ToString() + ":" +
  st.wMinute.ToString());
}
private void butGetTime_Click(object sender, EventArgs e) {
 GetTime();
}
private void butSetTime_Click(object sender, EventArgs e) {
 SetTime();
}

Оглавление книги


Генерация: 0.631. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз