diff --git a/src/julian_date.c b/src/julian_date.c
index 2f1432c9e398a89f748426eef9230cb93b955dde..23df04a77df843ca8400ce2bad52616b21312c63 100644
--- a/src/julian_date.c
+++ b/src/julian_date.c
@@ -205,21 +205,21 @@ JulianDate
 julianDate_add(JulianDate julianDate1, JulianDate julianDate2)
 {
   JulianDate julianDate;
-  julianDate.julianDay = julianDate2.julianDay + julianDate1.julianDay;
-  julianDate.secondOfDay = julianDate2.secondOfDay + julianDate1.secondOfDay;
+  julianDate.julianDay = julianDate1.julianDay + julianDate2.julianDay;
+  julianDate.secondOfDay = julianDate1.secondOfDay + julianDate2.secondOfDay;
 
   adjust_seconds(&julianDate);
 
   return julianDate;
 }
 
-// subtract julianDate1 from julianDate2
+// subtract julianDate2 from julianDate1
 JulianDate
 julianDate_sub(JulianDate julianDate1, JulianDate julianDate2)
 {
   JulianDate julianDate;
-  julianDate.julianDay = julianDate2.julianDay - julianDate1.julianDay;
-  julianDate.secondOfDay = julianDate2.secondOfDay - julianDate1.secondOfDay;
+  julianDate.julianDay = julianDate1.julianDay - julianDate2.julianDay;
+  julianDate.secondOfDay = julianDate1.secondOfDay - julianDate2.secondOfDay;
 
   adjust_seconds(&julianDate);
 
diff --git a/src/stream_cgribex.c b/src/stream_cgribex.c
index 7d6bc256d0ba4ae65c813eca451684d9b53851aa..78c8703d2f1878eac65ffe5aeb570542ed16dc09 100644
--- a/src/stream_cgribex.c
+++ b/src/stream_cgribex.c
@@ -1461,7 +1461,7 @@ cgribexDefTimerange(int tsteptype, int factor, int calendar, int rdate, int rtim
   CdiDateTime vDateTime = cdiDateTime_set(vdate, vtime);
   JulianDate julianDate2 = julianDate_encode(calendar, vDateTime);
 
-  JulianDate julianDate = julianDate_sub(julianDate1, julianDate2);
+  JulianDate julianDate = julianDate_sub(julianDate2, julianDate1);
 
   int timerange = -1;
   int ip1 = 0, ip2 = 0;
@@ -1476,7 +1476,7 @@ cgribexDefTimerange(int tsteptype, int factor, int calendar, int rdate, int rtim
           CdiDateTime sDateTime = cdiDateTime_set(sdate, stime);
           julianDate2 = julianDate_encode(calendar, sDateTime);
 
-          julianDate = julianDate_sub(julianDate1, julianDate2);
+          julianDate = julianDate_sub(julianDate2, julianDate1);
 
           ipx = (int) lround(julianDate_to_seconds(julianDate) / factor);
         }
diff --git a/src/stream_gribapi.c b/src/stream_gribapi.c
index 1dda511ef5279f207d2569eed7709cf1c834d6a0..f7a4e7586bfeefbd233d7c17f48cc23ee10267a8 100644
--- a/src/stream_gribapi.c
+++ b/src/stream_gribapi.c
@@ -2005,7 +2005,7 @@ gribapiDefDateTimeRel(int editionNumber, grib_handle *gh, int fdate, int ftime,
   CdiDateTime vDateTime = cdiDateTime_set(vdate, vtime);
   JulianDate julianDate2 = julianDate_encode(calendar, vDateTime);
 
-  JulianDate julianDate = julianDate_sub(julianDate1, julianDate2);
+  JulianDate julianDate = julianDate_sub(julianDate2, julianDate1);
 
   const int factor = getTimeunitFactor(timeunit);
 
@@ -2029,7 +2029,7 @@ gribapiDefDateTimeRel(int editionNumber, grib_handle *gh, int fdate, int ftime,
           CdiDateTime sDateTime = cdiDateTime_set(sdate, stime);
           julianDate2 = julianDate_encode(calendar, sDateTime);
 
-          julianDate = julianDate_sub(julianDate1, julianDate2);
+          julianDate = julianDate_sub(julianDate2, julianDate1);
 
           startStep = lround(julianDate_to_seconds(julianDate) / factor);
         }
diff --git a/src/taxis.c b/src/taxis.c
index 61f06cdc0f37cd556507b5d61421e0cf60aebcbf..835923438d2b1ed3d56a07a3edf385a031cbde2d 100644
--- a/src/taxis.c
+++ b/src/taxis.c
@@ -1164,7 +1164,7 @@ datetime2rtimeval(CdiDateTime vdatetime, taxis_t *taxis)
       vdatetime.date.year = year;
       vdatetime.date.month = month;
       const JulianDate julianDate2 = julianDate_encode(calendar, vdatetime);
-      const JulianDate dateDifference = julianDate_sub(julianDate1, julianDate2);
+      const JulianDate dateDifference = julianDate_sub(julianDate2, julianDate1);
 
       value += (dateDifference.julianDay + dateDifference.secondOfDay / 86400.0) / dpm;
       if (timeunits == TUNIT_YEAR) value = value / 12;
@@ -1172,7 +1172,7 @@ datetime2rtimeval(CdiDateTime vdatetime, taxis_t *taxis)
   else
     {
       const JulianDate julianDate2 = julianDate_encode(calendar, vdatetime);
-      const JulianDate dateDifference = julianDate_sub(julianDate1, julianDate2);
+      const JulianDate dateDifference = julianDate_sub(julianDate2, julianDate1);
 
       value = cdi_encode_timevalue(dateDifference.julianDay, dateDifference.secondOfDay, timeunits);
     }
@@ -1352,7 +1352,7 @@ cdiSetForecastPeriod(double timevalue, taxis_t *taxis)
   const JulianDate julianDate = julianDate_encode(calendar, vdatetime);
   const JulianDate julianDate2 = timevalue_decode(timeunits, timevalue);
 
-  const CdiDateTime dt = julianDate_decode(calendar, julianDate_sub(julianDate2, julianDate));
+  const CdiDateTime dt = julianDate_decode(calendar, julianDate_sub(julianDate, julianDate2));
 
   (*taxis).fdate = (int)cdiDate_get(dt.date);
   (*taxis).ftime = (int)cdiTime_get(dt.time);