Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задача на календарь

Автор: atraides 1.12.2006 3:11

Дан массив записей, представляющий собой календарь(число,месяц,год) Описать функцию, вычисляющую количество дней в том месяце, которому соответствует дата D. smile.gif

Автор: volvo 1.12.2006 3:20

Цитата
Дан массив записей
Ну, раз он дан, то покажи хотя бы структуру записи... Что за привычка недоговаривать?

Автор: }0pa 1.12.2006 5:18

Если кол-во дней в месяце, причем тут число как поле записи? blink.gif

Автор: Malice 1.12.2006 15:14

Вот так попробуй:

function days (d:dt):integer;
function d_ (y,m,d:integer):longint;
begin
if m<3 then begin dec (y); inc (m,12); end;
d_:=round(int (y*365.25)+int ((m+1)*30.601)+d-int(y/100)+int (y/400));
end;
var r:integer;
begin
r:=28; while d_(d.y,d.m,r)<d_(d.y, d.m+1,1) do inc( r );
days:=r-1;
end;

Чтоб жизнь медом не казалась smile.gif

Автор: atraides 3.12.2006 23:01

А у меня вот что получилось:

function NumberOfDays (month: byte, year: word):byte
begin
if month=2 then
if year mod 4 = 0 and ( (year mod 100 <> 0) or (year mod 400 = 0) )
then NumberOfDays := 29
else NumberOfDays := 28
else if (month = 4) or (month = 6) or (month = 9) or (month = 11)
then NumberOfDays := 30
else NumberOfDays := 31;
end;

wink.gif