Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на календарь
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
atraides
Дан массив записей, представляющий собой календарь(число,месяц,год) Описать функцию, вычисляющую количество дней в том месяце, которому соответствует дата D. smile.gif
volvo
Цитата
Дан массив записей
Ну, раз он дан, то покажи хотя бы структуру записи... Что за привычка недоговаривать?
}0pa
Если кол-во дней в месяце, причем тут число как поле записи? blink.gif
Malice
Вот так попробуй:
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
А у меня вот что получилось:

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
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.