在C#中,表示时间的数据类型为datetime 型
定义一个datetime型变量dt ,如下:
DateTime dt;
//
DateTime 是数据的类型声明,dt是所声明的变量的名称
其中需要注意的一个易犯的错误,就是将一个
String
型赋给了一个
DateTime
型变量,比如,我想
让已定义的变量
dt
表示
20:00:00
这个时间。若写成
dt
=
"
20:00:00
"
;
或
dt
=
(DateTime)(
"
20:00:00
"
);
这都是错误的,原因是这里的“20:00:00”是一个字符串即String型,无法通过以上方式对 dt 赋值。正确的赋值方法为:
dt
=
Convert.ToDateTime(
"
20:00:00
"
);
这样便把时间“20:00:00”赋给了dt
再说一点DateTime的基本知识:
DateTime currentTime
=
new
DateTime();
//
创建一个DateTime类型变量currentTime, DateTime 为类型,currentTime为变量名
currentTime
=
System.DateTime.Now;
//
取当前时间:年月日时分秒
int
年
=
currentTime.Year;
//
当前年 (变量名是可以用中文的)
int
月
=
currentTime.Month;
//
当前月
int
日
=
currentTime.Day;
//
当前日
int
时
=
currentTime.Hour;
//
当前时
int
分
=
currentTime.Minute;
//
当前分
int
秒
=
currentTime.Second;
//
当前秒
int
毫秒
=
currentTime.Millisecond;
//
当前毫秒
DateTime dt1
=
DateTime.Now;
String Week
=
dt1.DayOfWeek;
//
表示当前日期是星期几,
返回值为String型(sunday,monday.....)
String Day
=
dt1.Day;
//
表示当前日期是该月中的第几天,
返回值为int型(1,2,3....)
//
其余还有DayOfYear等等方法
一个简单的判断两个时间间隔的函数,三个参数:DateTime1和DateTime2为要进行比较的时间,Type为比较的单位,范围(d,h,m,s)。函数如下:
private
double
DateDiff(DateTime DateTime1, DateTime DateTime2,
string
Type) 
...
{
double dateDiff = 0;
TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
switch (Type) 
...{
case "d":
dateDiff = ts.TotalDays;
break;
case "h":
dateDiff = ts.TotalHours;
break;
case "m":
dateDiff = ts.TotalMinutes;
break;
case "s":
dateDiff = ts.TotalSeconds;
break;
}
return dateDiff;
}
比如DateTime1为9:20:00,DateTime2为10:30:20,调用该函数
DateTime dt1
=
Convert.ToDateTime(
"
9:20:00
"
);
DateTime dt2
=
Convert.ToDateTime(
"
10:30:20
"
);
double
day
=
DateDiff(dt1, dt2,
"
d
"
);
double
hour
=
DateDiff(dt1, dt2,
"
h
"
);
double
min
=
DateDiff(dt1, dt2,
"
m
"
);
double
second
=
DateDiff(dt1, dt2,
"
s
"
);
可得 day=0.04884259259259259;hour=1.1722222222222223;min=70.333333333333329;second=4220.0;