你首先要知道公元1年1月1日是星期一。然后,累加到“今天”的天数(只加与7的模即可),最后,用天数模7: 代码如下: program Day;var y, m, d: Integer;function RunNian(y: Integer):Boolean; begin if ((y mod 4 = 0) and (y mod 100 <> 0)) or (y mod 400 = 0) then RunNian := True else RunNian := False; end;const md: array [1..12] of Integer = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); name: array [0..6] of string = ('Sunday', 'Monday', 'Tuesday', 'Wedsday', 'Thursday', 'Friday', 'Saturday'); var count, i: Integer; begin Readln(y, m, d); count := 0; for i:=1 to y - 1 do if RunNian(i) then Inc(count, 366 mod 7) else Inc(count, 365 mod 7); for i:=1 to m-1 do Inc(count, md[i] mod 7); if (m - 1 >= 2) and RunNian(y) then Inc(count); Inc(count, d); Writeln(Name[count mod 7]); end.
代码如下:
program Day;var
y, m, d: Integer;function RunNian(y: Integer):Boolean;
begin
if ((y mod 4 = 0) and (y mod 100 <> 0)) or (y mod 400 = 0) then
RunNian := True
else
RunNian := False;
end;const
md: array [1..12] of Integer = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
name: array [0..6] of string = ('Sunday', 'Monday', 'Tuesday', 'Wedsday', 'Thursday', 'Friday', 'Saturday');
var
count, i: Integer;
begin
Readln(y, m, d); count := 0;
for i:=1 to y - 1 do
if RunNian(i) then
Inc(count, 366 mod 7)
else
Inc(count, 365 mod 7); for i:=1 to m-1 do
Inc(count, md[i] mod 7);
if (m - 1 >= 2) and RunNian(y) then
Inc(count); Inc(count, d); Writeln(Name[count mod 7]);
end.
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;
{$R *.dfm}function GetDayWeek(Datetime:TDateTime):string;
const
days: array[1..7] of string=('日','一','二','三','四','五','六');
begin
result:='星期'+days[DayOfWeek(Datetime)];
end;procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(GetDayWeek(now));
end;