summaryrefslogtreecommitdiffstats
path: root/src/calendar.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/calendar.h')
-rw-r--r--src/calendar.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/calendar.h b/src/calendar.h
new file mode 100644
index 0000000..c87531d
--- /dev/null
+++ b/src/calendar.h
@@ -0,0 +1,71 @@
1#ifndef _CALENDAR_H_
2#define _CALENDAR_H_
3
4
5#include <iostream>
6#include <string>
7#include <ctime>
8#include <vector>
9#include <fstream>
10#include <math.h>
11using namespace std;
12
13typedef struct tm Date;
14
15extern double pi;
16extern double delta;
17
18class Julian
19{
20 private:
21 static double d[23][5];
22
23 double dt_ext(int y,double jsd);
24
25 //计算力学时与世界时之差,传入年份
26 double delta_t(int y);
27 public:
28 // 计算儒略日
29 double getJulianDay(time_t time);
30
31 // 计算儒略千年数
32 double getJulianKiloYear(time_t time);
33
34 //儒略千年数转时间戳
35 time_t kiloYearToTime(double t,int year);
36};
37
38
39class parameter{
40 private:
41
42 // 计算地球日心黄经
43 double get_longitude(vector<double> l,double t);
44
45 // 计算地球日心黄纬
46 double get_latitude(vector<double> b,double t);
47
48 double get_R(vector<double> r,double t);
49
50 // 转换FK5误差,返回弧度制
51 double delta_FK5(double L,double B,double T);
52
53 //获取章动有关角
54 vector<double> get_angle(double T);
55
56
57 //章动修正
58 double nution(double T);
59
60 //光行差修正,返回弧度制
61 double aberration(double R);
62
63 // 获取地日运行参数,L为地球日心黄经,B为地球日心黄纬,R为地日距离
64 vector<vector<double>> get_parameters(double t);
65
66 public:
67
68 double sun_longitude(double t);
69};
70
71#endif