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
|
CC = gcc
|
||||||
CFLAGS = -Wall -O2
|
CFLAGS = -Wall -O3 -g
|
||||||
LIBS = -lm -lpthread
|
LIBS = -lm -lpthread
|
||||||
|
|
||||||
LUNARCAL = lunarcal
|
LUNARCAL = lunarcal
|
||||||
TESTASTRO = testastro
|
TESTASTRO = testastro
|
||||||
|
|
||||||
# default target
|
# default target
|
||||||
.PHONY : all
|
.PHONY : all clean
|
||||||
all: $(LUNARCAL) $(TESTASTRO)
|
all: $(LUNARCAL) $(TESTASTRO)
|
||||||
@echo all done!
|
@echo all done!
|
||||||
|
|
||||||
@@ -36,6 +36,5 @@ $(TESTASTRO): $(TESTASTRO_OBJS)
|
|||||||
$(CC) $(CFLAGS) -o $(TESTASTRO) $(TESTASTRO_OBJS) $(LIBS)
|
$(CC) $(CFLAGS) -o $(TESTASTRO) $(TESTASTRO_OBJS) $(LIBS)
|
||||||
|
|
||||||
|
|
||||||
.PHONY : clean
|
|
||||||
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);
|
V += nutation(jd);
|
||||||
/* printf("debug lea406, nutation been adjusted"); */
|
/* printf("debug lea406, nutation been adjusted"); */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < num_threads; i++)
|
||||||
|
free(thread_args[i]);
|
||||||
|
|
||||||
return V;
|
return V;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#define MAX_NEWMOONS 15
|
#define MAX_NEWMOONS 15
|
||||||
#define MAX_DAYS 450
|
#define MAX_DAYS 450
|
||||||
#define CACHESIZE 3
|
#define CACHESIZE 3
|
||||||
#define BUFSIZE 32
|
#define BUFSIZE 64
|
||||||
#define TZ_CN 8
|
#define TZ_CN 8
|
||||||
|
|
||||||
struct solarterm {
|
struct solarterm {
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include "astro.h"
|
#include "astro.h"
|
||||||
|
|
||||||
#define MAX_JPL_LINE_LEN 100
|
#define MAX_JPL_LINE_LEN 128
|
||||||
#define MAX_JPL_RECORDS 73415
|
#define MAX_JPL_RECORDS 73415
|
||||||
#define FLAG_SOE 1
|
#define FLAG_SOE 1
|
||||||
|
|
||||||
@@ -14,10 +14,15 @@ struct jplrcd {
|
|||||||
};
|
};
|
||||||
|
|
||||||
int parsejplhorizon(char *fname, struct jplrcd *records[]);
|
int parsejplhorizon(char *fname, struct jplrcd *records[]);
|
||||||
|
void testnewmoon_solarterm(int year);
|
||||||
|
void testdeltat(void);
|
||||||
|
|
||||||
struct jplrcd *lon_alloc(void);
|
struct jplrcd *lon_alloc(void);
|
||||||
void verify_apparent_sun_moon(void);
|
void verify_apparent_sun_moon(void);
|
||||||
double n180to180(double angle);
|
double n180to180(double angle);
|
||||||
double jd2year(double jd);
|
double jd2year(double jd);
|
||||||
|
void testapparentmoon(void);
|
||||||
|
void testnutation(void);
|
||||||
|
|
||||||
double jd2year(double jd)
|
double jd2year(double jd)
|
||||||
{
|
{
|
||||||
@@ -30,11 +35,9 @@ double jd2year(double jd)
|
|||||||
return fyear;
|
return fyear;
|
||||||
}
|
}
|
||||||
|
|
||||||
void testdeltat(void);
|
|
||||||
void testdeltat()
|
void testdeltat()
|
||||||
{
|
{
|
||||||
// double d = -133.5;
|
// double d = -133.5;
|
||||||
// int i;
|
|
||||||
double jd;
|
double jd;
|
||||||
char strout[30];
|
char strout[30];
|
||||||
jd = jdptime("2012-01-05 18:00", "%y-%m-%d %H:%M", 0, 0);
|
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);
|
jdftime(strout, jd, "%y-%m-%d %H:%M", 0, 0);
|
||||||
printf("jdftime output = %s\n", strout);
|
printf("jdftime output = %s\n", strout);
|
||||||
|
|
||||||
int i,year;
|
int year;
|
||||||
double deltat;
|
double deltat;
|
||||||
year = -500;
|
year = -500;
|
||||||
for (i = 0; i < 20; i++) {
|
for (int i = 0; i < 20; i++) {
|
||||||
deltat = deltaT(year, 1);
|
deltat = deltaT(year, 1);
|
||||||
printf("%d = %.2f\n", year, deltat);
|
printf("%d = %.2f\n", year, deltat);
|
||||||
year += 100;
|
year += 100;
|
||||||
@@ -54,46 +57,42 @@ void testdeltat()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void testnewmoon_solarterm(void);
|
void testnewmoon_solarterm(int year)
|
||||||
void testnewmoon_solarterm(void)
|
|
||||||
{
|
{
|
||||||
double newmoons[NMCOUNT];
|
double newmoons[NMCOUNT];
|
||||||
double jd;
|
double jd;
|
||||||
//jd = jdptime("2014-01-01 18:00", "%y-%m-%d %H:%M", 0, 0);
|
//jd = jdptime("2014-01-01 18:00", "%y-%m-%d %H:%M", 0, 0);
|
||||||
int year = 2000;
|
int y = year;
|
||||||
int n;
|
|
||||||
char isodt[30];
|
char isodt[30];
|
||||||
int i;
|
const float tz = 8.0;
|
||||||
for (n = 0; n < 50; n++) {
|
for (int n = 0; n < 2; n++) {
|
||||||
jd = g2jd(year, 1, 1.0);
|
jd = g2jd(y, 1, 1.0);
|
||||||
findnewmoons(newmoons, NMCOUNT, jd);
|
findnewmoons(newmoons, NMCOUNT, jd);
|
||||||
year += 1;
|
y += 1;
|
||||||
|
|
||||||
for (i = 0; i < NMCOUNT; i++) {
|
for (int i = 0; i < NMCOUNT; i++) {
|
||||||
jdftime(isodt, newmoons[i], "%y-%m-%d %H:%M:%S", 8.0, 1);
|
jdftime(isodt, newmoons[i], "%y-%m-%d %H:%M:%S", tz, 1);
|
||||||
printf("found newmoon: %s %.8f\n", isodt, newmoons[i]);
|
printf("newmoon: %s UTC%.1f\n", isodt, tz);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
double angle;
|
double angle;
|
||||||
|
y = year;
|
||||||
for (angle = -90; angle < 285; angle += 15) {
|
for (angle = -90; angle < 285; angle += 15) {
|
||||||
jd = solarterm(2014, angle);
|
jd = solarterm(y, angle);
|
||||||
jdftime(isodt, jd, "%y-%m-%d %H:%M:%S", 8.0, 1);
|
jdftime(isodt, jd, "%y-%m-%d %H:%M:%S", tz, 1);
|
||||||
printf("solar term: %3.0f %s\n", angle, isodt);
|
printf("solar term: %3.0f %s UTC%.1f\n", angle, isodt, tz);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void testapparentmoon(void);
|
|
||||||
void testapparentmoon(void)
|
void testapparentmoon(void)
|
||||||
{
|
{
|
||||||
double jd = 2411545.0;
|
double jd = 2411545.0;
|
||||||
char deg[30];
|
char deg[30];
|
||||||
char degsun[30];
|
char degsun[30];
|
||||||
double d;
|
double d;
|
||||||
int i;
|
for (int i = 0; i < 20; i++) {
|
||||||
for (i = 0; i < 20; i++) {
|
|
||||||
d = apparentmoon(jd, 1) * RAD2DEG;
|
d = apparentmoon(jd, 1) * RAD2DEG;
|
||||||
fmtdeg(deg, d);
|
fmtdeg(deg, d);
|
||||||
d = lightabbr_high(jd) * RAD2DEG;
|
d = lightabbr_high(jd) * RAD2DEG;
|
||||||
@@ -104,7 +103,6 @@ void testapparentmoon(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void testnutation(void);
|
|
||||||
void testnutation(void)
|
void testnutation(void)
|
||||||
{
|
{
|
||||||
double jd = 2411545.0;
|
double jd = 2411545.0;
|
||||||
@@ -130,9 +128,9 @@ int parsejplhorizon(char *fname, struct jplrcd *records[])
|
|||||||
}
|
}
|
||||||
flag = 0;
|
flag = 0;
|
||||||
i = 0;
|
i = 0;
|
||||||
while ((p = fgets(buf, MAX_JPL_LINE_LEN + 1, fp)) != NULL
|
while ((p = fgets(buf, MAX_JPL_LINE_LEN, fp)) != NULL &&
|
||||||
&& i < MAX_JPL_RECORDS) {
|
i < MAX_JPL_RECORDS) {
|
||||||
if (p == strstr(p, "$$SOE")) { /* start of records */
|
if (p == strstr(p, "$$SOE")) { /* start of records */
|
||||||
flag = 1;
|
flag = 1;
|
||||||
continue;
|
continue;
|
||||||
} else if (p == strstr(p, "$$EOE")) {
|
} 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));
|
sscanf(p, "%lf %lf", &(plon->jd), &(plon->lon));
|
||||||
records[i++] = plon;
|
records[i++] = plon;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
struct jplrcd *lon_alloc(void)
|
struct jplrcd *lon_alloc(void)
|
||||||
{
|
{
|
||||||
return (struct jplrcd *) malloc(sizeof(struct jplrcd));
|
return (struct jplrcd *) malloc(sizeof(struct jplrcd));
|
||||||
@@ -217,12 +213,11 @@ double n180to180(double angle)
|
|||||||
return angle;
|
return angle;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(void);
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
//testnewmoon_solarterm();
|
testnewmoon_solarterm(2024);
|
||||||
//testapparentmoon();
|
//testapparentmoon();
|
||||||
//testnutation();
|
//testnutation();
|
||||||
verify_apparent_sun_moon();
|
//verify_apparent_sun_moon();
|
||||||
return 0;
|
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