long n; n = (year-1)*365; n += (year-1)/4; n -= (year-1)/100; n += (year-1)/400; for(int i=1;i<month;i++) n += endOfMonth(i,year); n += day+1; n %= 7; return n;最后n是几就是星期几啊。 endOfMonth函数也好实现啊。
int endOfMonth(int m,int y) { switch(m) { case 2: if(isLeapYear(y)) return 28; else return 29; case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; default: return 30; } }
uses DateUtils;.... Weekof();
function DateToWeek(DateTime: TDateTime): String; const Returns: array[1..7] of String = ('星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'); begin Result := Returns[DayOfWeek(DateTime)]; end;procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(DateToWeek(Now)); end;
n = (year-1)*365;
n += (year-1)/4;
n -= (year-1)/100;
n += (year-1)/400; for(int i=1;i<month;i++)
n += endOfMonth(i,year); n += day+1;
n %= 7; return n;最后n是几就是星期几啊。 endOfMonth函数也好实现啊。
{
switch(m)
{
case 2:
if(isLeapYear(y))
return 28;
else
return 29;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: return 31;
default: return 30;
}
}
Weekof();
const
Returns: array[1..7] of String =
('星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六');
begin
Result := Returns[DayOfWeek(DateTime)];
end;procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(DateToWeek(Now));
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;
在interface下面的uses中添加DateUtils就可以了啊。Edit1.Text:=inttostr(dayofweek(2004-8-29));