diff options
Diffstat (limited to 'src/calendar.h')
-rw-r--r-- | src/calendar.h | 71 |
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> | ||
11 | using namespace std; | ||
12 | |||
13 | typedef struct tm Date; | ||
14 | |||
15 | extern double pi; | ||
16 | extern double delta; | ||
17 | |||
18 | class 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 | |||
39 | class 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 | ||