diff --git a/src/main.c b/src/main.c index 03fb60bf..7b3f05e1 100644 --- a/src/main.c +++ b/src/main.c @@ -385,6 +385,23 @@ void FromDSE(int dse, int *y, int *m, int *d) return; } +int JulianToGregorianOffset(int y, int m) +{ + int offset = 13; + int centuries; + int four_centuries; + if (y >= 2100) { + centuries = (y - 2000) / 100; + four_centuries = (y - 2000) / 400; + offset += centuries - four_centuries; + if (!(y%100) && (y % 400)) { + if (m < 2) { + offset--; /* Offset increments in March */ + } + } + } + return offset; +} /***************************************************************/ /* */ /* ParseChar */ diff --git a/src/protos.h b/src/protos.h index e9cb2e24..6d9b0393 100644 --- a/src/protos.h +++ b/src/protos.h @@ -58,6 +58,7 @@ void InitRemind (int argc, char const *argv[]); void Usage (void); int DSE (int year, int month, int day); void FromDSE (int dse, int *y, int *m, int *d); +int JulianToGregorianOffset(int y, int m); int ParseChar (ParsePtr p, int *err, int peek); int ParseToken (ParsePtr p, DynamicBuffer *dbuf); int ParseIdentifier (ParsePtr p, DynamicBuffer *dbuf);