在Delphi中如何获得当前是星期几?50大洋(50分)

  • 主题发起人 主题发起人 waxu
  • 开始时间 开始时间
[blue]function DayOfWeek(Date: TDateTime): Integer;[/blue]
This example uses an edit box and a button on a form. When the user
enters a date in the edit box in the MM/DD/YY format, the string
entered is converted to a TDateTime value. This value is used to
indicate the day of the week the date represents.

procedure TForm1.Button1Click(Sender: TObject);

var
ADate: TDateTime;
days: array[1..7] of string;
begin
days[1] := 'Sunday';
days[2] := 'Monday';
days[3] := 'Tuesday';
days[4] := 'Wednesday';
days[5] := 'Thursday';
days[6] := 'Friday';
days[7] := 'Saturday';
ADate := StrToDate(Edit1.Text);
ShowMessage(Edit1.Text + ' is a ' + days[DayOfWeek(ADate)];
end;
 
试试这个函数!

Function CalcDayOfWeek(Year, Month, Day : Integer) : Integer;
Var
Century,
Holder : Integer;
begin
if (Year < 0) or (Month < 1) or (Month > 12) or (Day < 1) or (Day > 31) then
CalcDayOfWeek := -1
else
begin
Century := Year div 100;
Year := Year MOD 100;
if Month < 3 then
begin
Inc(Month, 12);
if Year > 0 then
Dec(Year, 1)
else
begin
Year := 99;
Dec(Century);
end;
end;
Holder := Day;
Holder := Holder + (((Month + 1) * 26) div 10);
Holder := Holder + Year;
Holder := Holder + (Year div 4);
Holder := Holder + (Century div 4);
Holder := Holder - Century - Century;
While Holder < 0 do
Inc(Holder, 7);
Holder := Holder MOD 7;
if Holder = 0 then
Holder := 7;
Dec(Holder);
CalcDayOfWeek := Holder;
end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
days: array[1..7] of string;
begin
days[1] := 'Sunday';
days[2] := 'Monday';
days[3] := 'Tuesday';
days[4] := 'Wednesday';
days[5] := 'Thursday';
days[6] := 'Friday';
days[7] := 'Saturday';
ShowMessage('Today is ' + days[DayOfWeek(Date)]);
end;
 
function str_DayOfWeek(ADate:TDateTime):string;
begin
Result:=shortDayNames[dayOfWeek(ADate)];
end;
 
同意高大强
dayofweek(data()),这将会返回一个整型数
1-7分别是星期日到星期六
 
不会吧? 这可是DELPHI的标准函数。[:(!]
 
[red]被人抢先了![/red]
[:D]
那我告诉你其他的把,这个东东可以在delphi 的帮助查到,上面几位
大虾的代码就是帮助里面的,呜呜。。。晚了一步。
 
来迟一步,同意wjiachun的方法[:)]
 
怎么没人同意我的答案?怪,怪,怪!!
 
我同意小人物,我刚试了一下.
 
谢谢大家,没想到一个小小的问题竟有嫩个多朋友为我解难!
但是好像[red]人在边缘[/red]的方法有点复杂!
[red]wjiachun、高大强、小人物、舞雪[/red]他们的方法大致一样,
尤其以[green]舞雪[/green]的方法最经典!
谢谢大家!但是只有50分,这点分根本不能表达我对你们的谢意!没办法!
每个人表示一下!
 
>>尤其以舞雪的方法最经典!
[blue]瞎评论![/blue]经典二字何来??

看到我回答的第一行的蓝色文字了么?大家都是用标准的函数dayOfWeek!!

>>人在边缘的方法有点复杂?
他提供了另一个解决问题的途径!!!
 
wjiachun:
我所说的[green]经典[/green]就是用尽可能少的字解决问题!
这样,不仅可以节约网络资源,而且还能使提问题的人一目了然!
对了,都是dayofweek()为什么你就说得很麻烦,罗嗦?
回答问题关键是[red]一针见血[/red]!
有些事情每个人的看法都不一样,何必[red]斤斤计较[/red]?^_^
当然,非常感谢你能够解答我所提出的问题!
再次感谢wjiachun!
 
后退
顶部