Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Ответ:

Отправлено ETM 17 июня 2007 г. 23:17
В ответ на: Подскажите, где можно посмотреть алгоритмы вычисления дат, дней недели и тому подобное (+) отправлено bp 17 июня 2007 г. 22:55

type
{Формат даты----------------------------------}
DataTyp = record
case Boolean of
true : (l:longword);
false: (
dd:byte;
mm:byte;
yy:word
);
end;

{-----------------------------------------------------------------}
function isVisocosn(year:word):boolean;
begin
if (frac(year/4)=0) and (frac(year/1000)<>0) then Result:=True
else Result:=False;
end;
{-----------------------------------------------------------------}
function MonthDay(month:byte;year:word):byte;
begin
case month of
1,3,5,7,8,10,12:
Result:=31;
4,6,9,11 :
Result:=30;
2 :
begin
if (isVisocosn(year)) or (year=2000) then Result:=29 else Result:=28;
end;
else
Result:=30;
end;
end;
{-----------------------------------------------------------------}
function WeekDay(var data):byte;
var i:integer;
kolday:longint;
d:DataTyp absolute data;
nomer_day:byte;
begin
With d do begin
kolday:=longint((yy-1) div 4)*366+
longint((yy-1)-((yy-1) div 4))*365
-(yy div 1000);
for i:=1 to mm-1 do inc(kolday,MonthDay(i,yy));
inc(kolday,dd);
if(yy>=2000) then inc(kolday);
nomer_day:=byte(kolday-(kolday div 7)*7);
if nomer_day=0 then nomer_day:=7;
end;
Result:=nomer_day;
end;

Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
поделите 4 пополам:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru