• Авторизация


Без заголовка 09-04-2009 00:58 к комментариям - к полной версии - понравилось!


// ololo.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include
#include
#include


long Jd(int year, int month, int day)
{
int Grig = 0; // григорианская ли это дата?
if (year > 1582) Grig = 0; else
if (year < 1582) Grig = 1; else
if (month > 10) Grig = 0; else
if (month < 10) Grig = 1; else
if (day >= 15) Grig = 0; else Grig = 1;
if (month <= 2) { year--; month += 12; };
unsigned long J;
int A;
if (Grig == 0){A= year/100; A = 2 - A + (A / 4) ;}
else A=0;
J = 1461 * year /4 ;
unsigned long K =306001*(month + 1);
K /= 10000;
J += K + day + 1720995 + A; return J;
};


void GDate (long JD, int& y, int& m, int& d)
{
unsigned long A=(JD*4-7468865)/146097;
A=(JD > 2299160)? JD+1(A/4): JD;
long B=A+1524;
long C=(B*20-2442)/7305;
long D=(C*1461)/4;
long E=(10000*(B-D))/306001;
d=int (B-D-((E*306001)/10000)) ;
m= (E<=13) ? E-1 : E-13 ;
y= C - ((m>2) ? 4716 : 4715 );
};

void EasterOrthodox (int year, int&mm, int&dd)
{
int a = year % 4;
int b = year % 7;
int с = year % 19;
int d = (19 * с + 15) % 30;
int e = (2 * a + 4 * b - d + 34) % 7;
a = d+e+114;
mm = a / 31;
dd = a % 31 +1;
if (year > 1582) {
d = 10 + ((year / 100 - 15) * 3) / 4;
dd +=d;
if ((mm == 3) && (dd > 31) )
{dd -= 31;mm++;} else
if ((mm == 4) && (dd>30)) {dd -= 30; mm++;}
};
};
void EasterCatholic (int year, int&mm, int&dd)
{
if (year <= 1582)
{
EasterOrthodox(year,mm,dd);
return;
}
int a = year % 19;
int b = year / 100;
int c = year % 100;
int g = (b - (b + 8) / 25 + 1) / 3;
int h = (19 *a b/4-g+15)%30;
int l = (32 + 2 * (b % 4)+2*(c/4)-h-(c%4))%7;
mm = (a + 11 * h + 22 * 1) / 451;
mm = h + 1 - 7 * mm + 114;
dd = mm % 31 + 1; mm /= 31;
};

int main()
{

}
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Без заголовка | Gf_ab - Together | Лента друзей Gf_ab / Полная версия Добавить в друзья Страницы: раньше»