DiBR
обычная кошмарная
домашняя страничка
Ежекакполучится околокомпьютерное обозрение
 
  <<<  предыдущий Tech! archive #36 следующий  >>>  
   Последний выпуск       Архив       Ссылки       Полезности       humor.filtered       Фотки       О сайте   
          Это - достаточно беспорядочный архив сообщений конференций сети fidonet, которые на момент их прочтения мной показались полезными или интересными. Многие устарели, многие узкоспецифичны и малоинтересны, но может оказаться и что-то новое...
         
- __techs (2:5015/42) ----------------------------------------------- __techs -
Msg  : 36 of 1000                          Scn
From : Viktor Ostashev                     2:5020/753.3    19 Jun 96  23:30:52
To   : Mark Lobanov                                        21 Jun 96  07:01:50
Subj : Интеpвал между датами
-------------------------------------------------------------------------------
@AREA:NICE.SOURCES
Oтвeт нa пиcьмo Mark Lobanov (2:463/721.2@fidonet) к All
oт 17 июня 1996 г., 18:27

Hello Mark!

ML> Соppи, tormozz я, гpохнул по ошибке:-(

type
    tdate               = record
                               d                   : byte;
                               m                   : byte;
                               y                   : integer;
                          end;
    tstyle              = (grigorian, julian);


function numofday(dat : tdate; style : tstyle) : longint;
{Вычисляет условный номер дня для даты dat с учетом нового стиля}
    var
         stcor               : integer;
    begin
         inc(dat.m);
         if dat.m <= 3 then
              begin
                   dat.m := dat.m+12;
                   dec(dat.y);
              end;
         if style = grigorian then stcor := 2-dat.y div 100+dat.y div 400
                              else stcor := 0;
         numofday := trunc(365.25*dat.y)+trunc(30.6*dat.m)+stcor+dat.d;
    end;

function dayofweek(dat : tdate; style : tstyle) : byte;
{Вычисляет день недели для даты dat с учетом стиля}
    var
         sum                 : real;
         day                 : byte;
         buf                 : longint;
    begin
         buf := numofday(dat, style);
         sum := buf+4.5;
         day := trunc(7*(sum/7-trunc(sum) div 7));
         if day = 0 then day := 7;
         dayofweek := day;
    end;

function lenofmonth(month : byte; year : word; style : tstyle) : byte;
    {Вычисляет длину месяца с учетом стиля}

    var
         len                 : byte;
    begin
         case month of
              2 : begin
                       if year mod 4 = 0 then len := 29
                                         else len := 28;
                       if (style = grigorian) and (year mod 100 = 0) and (year
mod 400 > 0) then len := 28;
                  end;
              4, 6, 9, 11 : len := 30
              else len := 31;
         end;
         lenofmonth := len;
    end;

          C yвaжeниeм -
                                                    Bиктop Ocтaшeв

--- ---------------------------------------
* Origin: █▓▒░ ФИЗKУЛЬТ - ПРИBEТ BBS ░▒▓█ (2:5020/753.3)






<<<

архив dibr

>>>'