#include "ephemeride.h" #include #include "Date_heure.h" #define PI (4.0 * atan(1.0)) //const double PI = 4.0 * atan(1.0); /*______________________________________________________________fonction qui calcule le rang du jour de l'année__________________________*/ ///////////////////////////////////////////////////// N1,N2,K sont des parametre de calcule////////////////////////////////////////// int rangJour(int day,int month,int year){ int N1= int((month*275)/9); int N2=int((month+9)/12); int K; if (bisex(year)==true){ K=1; } else{ K=2; }; int N=N1-N2*K+day-30; return N; } /*_____________________________________________________________fonction qui calcule l'equation du temps_________________________________*/ ////////////////////////////////////////////////////////,M,C,L,R sont des parametre de calcule en degré,///////////////////////////// //////////////////////////////////////////////////eqt=equation de temps en minute conversion en radian=x*PI/180////////////////////// float equationDuTemps(int N){ float M=(357+0.9856*N) - 360*int((357+0.9856*N)/360); float C= 1.914*sin(M*PI/180)+0.02*sin(2*M*PI/180); float L= (280+C+0.9856*N) - 360*int((280+C+0.9856*N)/360); float R=-2.466*sin(PI/180*2*L)+0.053*sin(PI/180*4*L); float eqt=(C+R)*4; return eqt; } /*_____________________________________________________________fonction qui calcul la declinaison solaire_______________________________*/ /////////////////////////////////////////////////////////////////////////calcule de la declinaison solaire dec/////////////////////// //////////////////////////// float declinaisonSolaire(int N){ float M=(357+0.9856*N) - 360*int((357+0.9856*N)/360); float C= 1.914*sin(M*PI/180)+0.02*sin(2*M*PI/180); float L= (280+C+0.9856*N) - 360*int((280+C+0.9856*N)/360); float dec=asin(0.3978*sin(PI/180*L))*180/PI; return dec; } /*_____________________________________________________________fonction qui calcul HO l'angle horaire du soeil_______________________________*/ float angleHoraireSoeil(int N, float LATITUDE){ float M=(357+0.9856*N) - 360*int((357+0.9856*N)/360); float C= 1.914*sin(M*PI/180)+0.02*sin(2*M*PI/180); float L= (280+C+0.9856*N) - 360*int((280+C+0.9856*N)/360); float R=-2.466*sin(PI/180*2*L)+0.053*sin(PI/180*4*L); float eqt=(C+R)*4; float dec=asin(0.3978*sin(PI/180*L))*180/PI; float ho=acos((-0.01405-sin(PI/180*dec)*sin(PI/180*LATITUDE))/(cos(PI/180*dec)*cos(PI/180*LATITUDE)))*180/PI; return ho; } float azimut(int N, float LATITUDE){ return (acos((-0.01405*sin(PI/180*LATITUDE )-sin(PI/180*(declinaisonSolaire(N))))/cos(PI/180*LATITUDE)))*180/PI; } /*__fonction qui calcul S que fait la trajectoire du Soleil avec l'horizon aux moments des lever/coucher__ */ float angleS(int N, float LATITUDE){ return (acos(sin(PI/180*LATITUDE )/cos(PI/180*(declinaisonSolaire(N)))))*180/PI; }