2007-12-19 11:25:11| 分类: Windows Mobile | 标签: |举报 |字号大中小 订阅
c#例子1
1 using System;
2 using System.Runtime.InteropServices;
3
4 class SysDateTime
5 {
6 private struct SYSTEMTIME
7 {
8 public ushort wYear;
9 public ushort wMonth;
10 public ushort wDayOfWeek;
11 public ushort wDay;
12 public ushort wHour;
13 public ushort wMinute;
14 public ushort wSecond;
15 public ushort wMilliseconds;
16 }
17
18 [DllImport("Coredll.dll")]
19 private static extern bool SetLocalTime(ref SYSTEMTIME lpSystemTime);
20
21 public static void SetDateTime(DateTime dt)
22 {
23 #region Codes==========================================================
24
25 SYSTEMTIME sysTime = new SYSTEMTIME();
26
27 sysTime.wYear = Convert.ToUInt16(dt.Year);
28 sysTime.wMonth = Convert.ToUInt16(dt.Month);
29 sysTime.wDay = Convert.ToUInt16(dt.Day);
30 sysTime.wDayOfWeek = Convert.ToUInt16(dt.DayOfWeek);
31 sysTime.wHour = Convert.ToUInt16(dt.Hour);
32 sysTime.wMinute = Convert.ToUInt16(dt.Minute);
33 sysTime.wSecond = Convert.ToUInt16(dt.Second);
34 sysTime.wMilliseconds = Convert.ToUInt16(dt.Millisecond);
35
36 SetLocalTime(ref sysTime);
37
38 #endregion
39 }
40 } // class
C#例子2:
using System;
using System.Runtime.InteropServices;
namespace setlocaltime
{
class Systemtime
{
[DllImport("coredll.dll")]
public static extern bool SetLocalTime(ref SYSTEMTIME Time);
[DllImport("coredll.dll")]
public static extern void GetLocalTime(ref SYSTEMTIME Time);
}
public 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;
/// <summary>
/// 从System.DateTime转换。
/// </summary>
/// <param name="time">System.DateTime类型的时间。</param>
public void FromDateTime(DateTime time)
{
wYear = (ushort)time.Year;
wMonth = (ushort)time.Month;
wDayOfWeek = (ushort)time.DayOfWeek;
wDay = (ushort)time.Day;
wHour = (ushort)time.Hour;
wMinute = (ushort)time.Minute;
wSecond = (ushort)time.Second;
wMilliseconds = (ushort)time.Millisecond;
}
/// <summary>
/// 转换为System.DateTime类型。
/// </summary>
/// <returns></returns>
public DateTime ToDateTime()
{
return new DateTime(wYear, wMonth, wDay, wHour, wMinute, wSecond, wMilliseconds);
}
/// <summary>
/// 静态方法。转换为System.DateTime类型。
/// </summary>
/// <param name="time">SYSTEMTIME类型的时间。</param>
/// <returns></returns>
public static DateTime ToDateTime(SYSTEMTIME time)
{
return time.ToDateTime();
}
}
}
VB.NET做的例子
Imports System
Imports System.Runtime.InteropServices
Public Class Form1
Private Structure SYSTEMTIME
Public wYear As UShort
Public wMonth As UShort
Public wDayOfWeek As UShort
Public wDay As UShort
Public wHour As UShort
Public wMinute As UShort
Public wSecond As UShort
Public wMilliseconds As UShort
End Structure
<DllImport("coredll.dll")> _
Private Shared Function SetLocalTime(ByRef T1 As SYSTEMTIME) As Boolean
End Function
<DllImport("coredll.dll")> _
Private Shared Function GetLocalTime(ByRef time As SYSTEMTIME) As Boolean
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim d As SYSTEMTIME
GetLocalTime(d)
MessageBox.Show(d.wYear & "-" & d.wMonth & "-" & d.wDay & " " & d.wHour & ":" & d.wMinute & ":" & d.wSecond & " " & d.wDayOfWeek)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim d As SYSTEMTIME
d.wYear = "2007"
d.wMonth = "12"
d.wDay = "18"
d.wHour = "9"
d.wMinute = "52"
d.wSecond = "9"
SetLocalTime(d)
End Sub
End Class
将英文的DayOfWeek枚举转化成中文的最简单方式
string [] Day=new string []{"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
Console.WriteLine(Day[Convert.ToInt16(DateTime.Now.DayOfWeek)]);
下面这种改法也不错:
const string Day = "日一二三四五六";
Console.WriteLine("星期" + Day[Convert.ToInt16(DateTime.Now.DayOfWeek)]);
备注
在每周有七天的日历中,DayOfWeek 枚举表示一周中的某天。该枚举的范围从零(表示星期日)到六(表示星期六)。
评论