Расчет графика биоритма

Расчет, графика, биоритма

Для построения графика биоритма необходимо рассчитать количество дней, прошедших со дня рождения до дня расчета - первого числа расчетного месяца. Для этого: умножим количество полных прожитых лет на 365 (1) и затем к полученному результату добавим по 1 за каждый прожитый високосный год (2) (см. таблицу), а также прибавим количество прожитых дней в году рождения (3) и в расчетном году (4).
   
   Таблица високосных лет, начиная с 1900 г.
   
   1900 1904 1908 1912 1916 1920 1924 1928 1932 1936
   1940 1944 1948 1952 1956 1960 1964 1968 1972 1976
   1980 1984 1988 1992 1996 2000 2004 2008 2012 2016
   2020 2024 2028
   
   Результат поделим на период биоритма и вычислим остаток от целочисленного деления. Отсчитаем от дня расчета (первое число расчетного месяца) в прошлое количество дней равное остатку от деления и от полученной даты построим синусоидальную кривую биоритма. Например, рассчитаем физиологический биоритм человека, родившегося 1.1.1934 г., на 1 октября 1998 г.
   365х64(1) + 16(2) + 0(3)+273(4)= 23649 дней
   Остаток от целочисленного деления на период 23 дня = 5 дней (23644:23=1028; 23649-23644=5). Тогда положительная фаза физиологического биоритма начинается 26 сентября. Алгоритм вычисления критических дней также достаточно прост. Пусть рeriod обозначает период биоритма, div- операцию целочисленного деления, max -день цикла, когда кривая достигает максимума, min - день цикла, когда кривая достигает минимума, nul - день цикла, когда кривая пересекает ось времени. Поскольку критическая точка кривой биоритма может быть расположена между двумя днями, то к соответствующим обозначениям вводим индексы 1 и 2. Тогда выполним вычисления критических дней для нашего примера.
   
   max1:=period div 4; ( 23 div 4=5 ); 26 сент +5 =1 окт
   max2:=(period+2) div 4; (23+2 div 4=6); 26 сент+6 = 2 окт
   min1:=period-max1; (23-5=18); 26 сент+18=14 окт
   min2:=period-max2; (23-6=17); 26 сент+17=13 окт
   nul1:=period div 2; (23 div 2=11); 26 окт+11=7 окт
   nul2:=(period+1) div 2; (23+1 div 2=12); 26 окт+12=8 окт