
11.02.2010, 00:37
|
Местный
|
|
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
|
|
Держи)
Код:
{$APPTYPE CONSOLE}
uses
Windows, SysUtils, DateUtils;
const
CMonths:array [1..12] of String = ('January','February','March','April','May','June','July',
'August','September','Octomber','November','December');
var
SYear:Word;
SMonth:Byte;
function FillStr(const aStr:String; const aLength:byte):String;
var
b:byte;
begin
Result:='';
if aLength-Length(aStr) > 0 then
for b:=1 to aLength-Length(aStr) do Result:=Result+' ';
Result:=Result+aStr;
end;
procedure WriteMonth(const aYear:Word; const aMonth:Byte);
var
SDay:Byte;
col, b:byte;
begin
Writeln(' ',CMonths[aMonth]);
col:=DayOfWeek(EncodeDate(aYear,aMonth,1))-2;
if (col > 1) and (col < 255) then
for b:=1 to col do
Write(' ');
if col = 255 then col:=1;
for SDay:=1 to DaysInMonth(EncodeDate(SYear,SMonth,1)) do
begin
Inc(Col);
if Col >= 8 then
begin
Col:=1;
Writeln;
end;
write(FillStr(Inttostr(SDay),3));
end;
end;
begin
SYear:=YearOf(Now());
Writeln('Year: ',SYear);
for SMonth:=1 to 12 do
begin
WriteMonth(SYear, SMonth);
Writeln;Writeln;
end;
Readln;
end.
|