diff --git a/lib/modules/Calendar.pmod/Julian.pmod b/lib/modules/Calendar.pmod/Julian.pmod
new file mode 100644
index 0000000000000000000000000000000000000000..7c03a20b858cc0e31f5795e7de6f5f34fd9b1a64
--- /dev/null
+++ b/lib/modules/Calendar.pmod/Julian.pmod
@@ -0,0 +1,35 @@
+inherit Calendar.Gregorian;
+
+class Year
+{
+  inherit Calendar.Gregorian.Year;
+
+  int julian_day(int d) // jd%7 gives weekday, mon=0, sun=6
+  {
+    return 1721424 + d + (36525*(y-1))/100;
+  }
+
+  int leap()
+  {
+    return !(y%4);
+  }
+
+}
+
+class Day
+{
+  inherit Calendar.Gregorian.Day;
+
+  void create(int ... arg)
+  {
+    if (!sizeof(arg))
+    {
+      int jd = Calendar.Gregorian.Day()->julian_day()-1721424;
+      y = jd*100/36525+1;
+      d = jd-(y-1)*36525/100;
+    }
+    else
+      ::create(@arg);
+  }
+
+}