mirror of
https://github.com/infinet/lunar-calendar.git
synced 2026-01-12 13:15:28 +08:00
silence compiler errors and few minor fixes
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
|
||||
CC = gcc
|
||||
CFLAGS = -Wall -O2
|
||||
CFLAGS = -Wall -O3 -g
|
||||
LIBS = -lm -lpthread
|
||||
|
||||
LUNARCAL = lunarcal
|
||||
TESTASTRO = testastro
|
||||
|
||||
# default target
|
||||
.PHONY : all
|
||||
.PHONY : all clean
|
||||
all: $(LUNARCAL) $(TESTASTRO)
|
||||
@echo all done!
|
||||
|
||||
@@ -36,6 +36,5 @@ $(TESTASTRO): $(TESTASTRO_OBJS)
|
||||
$(CC) $(CFLAGS) -o $(TESTASTRO) $(TESTASTRO_OBJS) $(LIBS)
|
||||
|
||||
|
||||
.PHONY : clean
|
||||
clean:
|
||||
rm -f *.o core a.out astro lunarcal testastro
|
||||
rm -f *.o core a.out lunarcal testastro
|
||||
|
||||
@@ -118,6 +118,10 @@ double lea406(double jd, int ignorenutation) {
|
||||
V += nutation(jd);
|
||||
/* printf("debug lea406, nutation been adjusted"); */
|
||||
}
|
||||
|
||||
for (i = 0; i < num_threads; i++)
|
||||
free(thread_args[i]);
|
||||
|
||||
return V;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define MAX_NEWMOONS 15
|
||||
#define MAX_DAYS 450
|
||||
#define CACHESIZE 3
|
||||
#define BUFSIZE 32
|
||||
#define BUFSIZE 64
|
||||
#define TZ_CN 8
|
||||
|
||||
struct solarterm {
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include <math.h>
|
||||
#include "astro.h"
|
||||
|
||||
#define MAX_JPL_LINE_LEN 100
|
||||
#define MAX_JPL_LINE_LEN 128
|
||||
#define MAX_JPL_RECORDS 73415
|
||||
#define FLAG_SOE 1
|
||||
|
||||
@@ -14,10 +14,15 @@ struct jplrcd {
|
||||
};
|
||||
|
||||
int parsejplhorizon(char *fname, struct jplrcd *records[]);
|
||||
void testnewmoon_solarterm(int year);
|
||||
void testdeltat(void);
|
||||
|
||||
struct jplrcd *lon_alloc(void);
|
||||
void verify_apparent_sun_moon(void);
|
||||
double n180to180(double angle);
|
||||
double jd2year(double jd);
|
||||
void testapparentmoon(void);
|
||||
void testnutation(void);
|
||||
|
||||
double jd2year(double jd)
|
||||
{
|
||||
@@ -30,11 +35,9 @@ double jd2year(double jd)
|
||||
return fyear;
|
||||
}
|
||||
|
||||
void testdeltat(void);
|
||||
void testdeltat()
|
||||
{
|
||||
// double d = -133.5;
|
||||
// int i;
|
||||
double jd;
|
||||
char strout[30];
|
||||
jd = jdptime("2012-01-05 18:00", "%y-%m-%d %H:%M", 0, 0);
|
||||
@@ -43,10 +46,10 @@ void testdeltat()
|
||||
jdftime(strout, jd, "%y-%m-%d %H:%M", 0, 0);
|
||||
printf("jdftime output = %s\n", strout);
|
||||
|
||||
int i,year;
|
||||
int year;
|
||||
double deltat;
|
||||
year = -500;
|
||||
for (i = 0; i < 20; i++) {
|
||||
for (int i = 0; i < 20; i++) {
|
||||
deltat = deltaT(year, 1);
|
||||
printf("%d = %.2f\n", year, deltat);
|
||||
year += 100;
|
||||
@@ -54,46 +57,42 @@ void testdeltat()
|
||||
return;
|
||||
}
|
||||
|
||||
void testnewmoon_solarterm(void);
|
||||
void testnewmoon_solarterm(void)
|
||||
void testnewmoon_solarterm(int year)
|
||||
{
|
||||
double newmoons[NMCOUNT];
|
||||
double jd;
|
||||
//jd = jdptime("2014-01-01 18:00", "%y-%m-%d %H:%M", 0, 0);
|
||||
int year = 2000;
|
||||
int n;
|
||||
int y = year;
|
||||
char isodt[30];
|
||||
int i;
|
||||
for (n = 0; n < 50; n++) {
|
||||
jd = g2jd(year, 1, 1.0);
|
||||
const float tz = 8.0;
|
||||
for (int n = 0; n < 2; n++) {
|
||||
jd = g2jd(y, 1, 1.0);
|
||||
findnewmoons(newmoons, NMCOUNT, jd);
|
||||
year += 1;
|
||||
y += 1;
|
||||
|
||||
for (i = 0; i < NMCOUNT; i++) {
|
||||
jdftime(isodt, newmoons[i], "%y-%m-%d %H:%M:%S", 8.0, 1);
|
||||
printf("found newmoon: %s %.8f\n", isodt, newmoons[i]);
|
||||
for (int i = 0; i < NMCOUNT; i++) {
|
||||
jdftime(isodt, newmoons[i], "%y-%m-%d %H:%M:%S", tz, 1);
|
||||
printf("newmoon: %s UTC%.1f\n", isodt, tz);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
double angle;
|
||||
y = year;
|
||||
for (angle = -90; angle < 285; angle += 15) {
|
||||
jd = solarterm(2014, angle);
|
||||
jdftime(isodt, jd, "%y-%m-%d %H:%M:%S", 8.0, 1);
|
||||
printf("solar term: %3.0f %s\n", angle, isodt);
|
||||
jd = solarterm(y, angle);
|
||||
jdftime(isodt, jd, "%y-%m-%d %H:%M:%S", tz, 1);
|
||||
printf("solar term: %3.0f %s UTC%.1f\n", angle, isodt, tz);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
void testapparentmoon(void);
|
||||
void testapparentmoon(void)
|
||||
{
|
||||
double jd = 2411545.0;
|
||||
char deg[30];
|
||||
char degsun[30];
|
||||
double d;
|
||||
int i;
|
||||
for (i = 0; i < 20; i++) {
|
||||
for (int i = 0; i < 20; i++) {
|
||||
d = apparentmoon(jd, 1) * RAD2DEG;
|
||||
fmtdeg(deg, d);
|
||||
d = lightabbr_high(jd) * RAD2DEG;
|
||||
@@ -104,7 +103,6 @@ void testapparentmoon(void)
|
||||
}
|
||||
}
|
||||
|
||||
void testnutation(void);
|
||||
void testnutation(void)
|
||||
{
|
||||
double jd = 2411545.0;
|
||||
@@ -130,9 +128,9 @@ int parsejplhorizon(char *fname, struct jplrcd *records[])
|
||||
}
|
||||
flag = 0;
|
||||
i = 0;
|
||||
while ((p = fgets(buf, MAX_JPL_LINE_LEN + 1, fp)) != NULL
|
||||
&& i < MAX_JPL_RECORDS) {
|
||||
if (p == strstr(p, "$$SOE")) { /* start of records */
|
||||
while ((p = fgets(buf, MAX_JPL_LINE_LEN, fp)) != NULL &&
|
||||
i < MAX_JPL_RECORDS) {
|
||||
if (p == strstr(p, "$$SOE")) { /* start of records */
|
||||
flag = 1;
|
||||
continue;
|
||||
} else if (p == strstr(p, "$$EOE")) {
|
||||
@@ -144,12 +142,10 @@ int parsejplhorizon(char *fname, struct jplrcd *records[])
|
||||
sscanf(p, "%lf %lf", &(plon->jd), &(plon->lon));
|
||||
records[i++] = plon;
|
||||
}
|
||||
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
|
||||
struct jplrcd *lon_alloc(void)
|
||||
{
|
||||
return (struct jplrcd *) malloc(sizeof(struct jplrcd));
|
||||
@@ -217,12 +213,11 @@ double n180to180(double angle)
|
||||
return angle;
|
||||
}
|
||||
|
||||
int main(void);
|
||||
int main()
|
||||
{
|
||||
//testnewmoon_solarterm();
|
||||
testnewmoon_solarterm(2024);
|
||||
//testapparentmoon();
|
||||
//testnutation();
|
||||
verify_apparent_sun_moon();
|
||||
//verify_apparent_sun_moon();
|
||||
return 0;
|
||||
}
|
||||
|
||||
241
xiushi.ics
241
xiushi.ics
@@ -1,241 +0,0 @@
|
||||
BEGIN:VCALENDAR
|
||||
PRODID:-//Chen Wei//2016 China Public Holiday Calendar//EN
|
||||
VERSION:2.0
|
||||
CALSCALE:GREGORIAN
|
||||
METHOD:PUBLISH
|
||||
X-WR-CALNAME:2016 China Public Holiday
|
||||
X-WR-TIMEZONE:Asia/Shanghai
|
||||
X-WR-CALDESC:上证公告[2015]36号
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160101-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160101
|
||||
DTEND;VALUE=DATE:20160102
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:元旦
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160102-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160102
|
||||
DTEND;VALUE=DATE:20160103
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:元旦
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160103-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160103
|
||||
DTEND;VALUE=DATE:20160104
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:元旦
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160207-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160207
|
||||
DTEND;VALUE=DATE:20160208
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:春节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160208-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160208
|
||||
DTEND;VALUE=DATE:20160209
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:春节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160209-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160209
|
||||
DTEND;VALUE=DATE:20160210
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:春节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160210-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160210
|
||||
DTEND;VALUE=DATE:20160211
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:春节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160211-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160211
|
||||
DTEND;VALUE=DATE:20160212
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:春节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160212-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160212
|
||||
DTEND;VALUE=DATE:20160213
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:春节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160213-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160213
|
||||
DTEND;VALUE=DATE:20160214
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:春节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160402-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160402
|
||||
DTEND;VALUE=DATE:20160403
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:清明节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160403-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160403
|
||||
DTEND;VALUE=DATE:20160404
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:清明节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160404-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160404
|
||||
DTEND;VALUE=DATE:20160405
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:清明节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160430-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160430
|
||||
DTEND;VALUE=DATE:20160501
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:劳动节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160501-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160501
|
||||
DTEND;VALUE=DATE:20160502
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:劳动节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160502-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160502
|
||||
DTEND;VALUE=DATE:20160503
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:劳动节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160609-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160609
|
||||
DTEND;VALUE=DATE:20160610
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:端午节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160610-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160610
|
||||
DTEND;VALUE=DATE:20160611
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:端午节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160611-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160611
|
||||
DTEND;VALUE=DATE:20160612
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:端午节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160915-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160915
|
||||
DTEND;VALUE=DATE:20160916
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:中秋节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160916-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160916
|
||||
DTEND;VALUE=DATE:20160917
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:中秋节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20160917-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20160917
|
||||
DTEND;VALUE=DATE:20160918
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:中秋节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20161001-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20161001
|
||||
DTEND;VALUE=DATE:20161002
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:国庆节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20161002-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20161002
|
||||
DTEND;VALUE=DATE:20161003
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:国庆节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20161003-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20161003
|
||||
DTEND;VALUE=DATE:20161004
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:国庆节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20161004-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20161004
|
||||
DTEND;VALUE=DATE:20161005
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:国庆节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20161005-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20161005
|
||||
DTEND;VALUE=DATE:20161006
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:国庆节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20161006-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20161006
|
||||
DTEND;VALUE=DATE:20161007
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:国庆节
|
||||
END:VEVENT
|
||||
BEGIN:VEVENT
|
||||
DTSTAMP:20160101T043225Z
|
||||
UID:20161007-holiday@infinet.github.io
|
||||
DTSTART;VALUE=DATE:20161007
|
||||
DTEND;VALUE=DATE:20161008
|
||||
STATUS:CONFIRMED
|
||||
SUMMARY:国庆节
|
||||
END:VEVENT
|
||||
END:VCALENDAR
|
||||
Reference in New Issue
Block a user