Force elapsed time display to zero if process seems started in the future
diff --git a/Process.c b/Process.c
index 59006fa..c8c2aa9 100644
--- a/Process.c
+++ b/Process.c
@@ -871,7 +871,15 @@
       Process_printLeftAlignedField(str, attr, cwd, 25);
       return;
    }
-   case ELAPSED: Process_printTime(str, /* convert to hundreds of a second */ this->processList->realtimeMs / 10 - 100 * this->starttime_ctime, coloring); return;
+   case ELAPSED: {
+      const uint64_t rt = this->processList->realtimeMs;
+      const uint64_t st = this->starttime_ctime * 1000;
+      const uint64_t dt =
+         rt < st ? 0 :
+         rt - st;
+      Process_printTime(str, /* convert to hundreds of a second */ dt / 10, coloring);
+      return;
+   }
    case MAJFLT: Process_printCount(str, this->majflt, coloring); return;
    case MINFLT: Process_printCount(str, this->minflt, coloring); return;
    case M_RESIDENT: Process_printKBytes(str, this->m_resident, coloring); return;