DateTimePicker是常用的日期时间控件,在作为日期控件使用时,我们一般只能在上面显示年/月/日的信息,虽然我们可以通过Format格式字符串来设置日期的样式,如用yyyy表示年份,M表示月份,d表示日期,但对于星期几,好象没有相应的英文字母来代表它.而在一些软件上,我却看到它们可以在DateTimePicker上显示星期几,如何实现的呢?应该是通过FORMAT吧,我试写了一下代码,在每次改变DateTimePicker的日期值后,重新计算该日期值是星期几,之后重设DateTimePicker的FORMAT=’yyyy年m月d日星期几’来实现.以下是代码:
//设置DateTimePicker字符串格式的函数
procedure TWorkEdit_Dlg.weekDate(NoDate:TDatetime);
var st,swk:string;
begin
//根据日期值计算它是星期几.
case DayOfWeek(NOdate) of
1: swk:='星期日';
2: swk:='星期一';
3: swk:='星期二';
4: swk:='星期三';
5: swk:='星期四';
6: swk:='星期五';
7: swk:='星期六';
end;
//重设DateTimePicker1.Format;
st:='yyyy年M月d '+swk;
DateTimePicker1.Format :=st;
End;
// DateTimePicker1的日期改变时,重新设置DateTimePicker1.Format;
procedure TWorkEdit_Dlg.DateTimePicker1Change(Sender: TObject);
begin
weekDate(DateTimePicker1.Date );
end;
//初始化
procedure TWorkEdit_Dlg.FormCreate(Sender: TObject);
begin
//将日期设为今天
DateTimePicker1.Date:=Now;
//此时DateTimePicker1Change消息不会产生,要自己设置
weekDate(DateTimePicker1.Date );
end;
end.