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 stime = new SYSTEMTIME();
GetSystemTime(ref stime);
// MessageBox.Show( Convert.ToString( stime.wHour)); 현제시간 표시
}
// SetTime( "20121225" , "221122") 호출하면 됨
private void SetTime(string t_date, string t_time) // 시스템 시간을 설정
{
try
{
int day_change = 0; // 일자가 변경되는걸 알기 위해서
SYSTEMTIME systime = new SYSTEMTIME();
// UTC 타임이라 + 9시간 차이가 난다. UTC 로 검색해보시면
if (Convert.ToInt16(t_time.Substring(0, 2)) >= 9)
systime.wHour = (ushort)(Convert.ToInt16(t_time.Substring(0, 2)) - 9 % 24);
else
{
day_change = 1;
systime.wHour = (ushort)(Convert.ToInt16(t_time.Substring(0, 2)) + 15 % 24);
}
systime.wMinute = (ushort)Convert.ToInt16(t_time.Substring(2, 2));
systime.wSecond = (ushort)Convert.ToInt16(t_time.Substring(4, 2));
systime.wYear = (ushort)(Convert.ToInt16(t_date.Substring(0, 4)));
systime.wMonth = (ushort) (Convert.ToInt16(t_date.Substring(4, 2)) ) ;
systime.wDay = (ushort)(Convert.ToInt16(t_date.Substring(6, 2)) - day_change); // 시간이 24시가 넘어가면 day 하루 늘어나게 된다. 그래서 day_change 변수를 사용해서 하루를 빼줌.
SetSystemTime(ref systime);
}
catch
{ }
}
'WINDOWS CE 응용 프로그램 개발' 카테고리의 다른 글
win ce 5.0 에서 Datagrid 사용하기~ (0) | 2011.12.16 |
---|---|
WINDOWS CE 5.0 배경 투명 (0) | 2011.12.14 |