/// module arsd.time; import std..string; string prettifyTimeDifference(long diff) { diff /= 1000; long signedDiff = diff; if(diff < 0) diff = -diff; string result; if(diff == 0) return "now"; //long thing = 1; //foreach(i; [60, 60, 24, 7 if(diff < 60) result = format("%d second%s", diff, diff == 1 ? "" : "s"); else if (diff < 60*60) result = format("%d minute%s", diff / 60, diff / 60 == 1 ? "" : "s"); else if (diff < 60*60*24) result = format("%d hour%s", diff / (60*60), diff / (60*60) == 1 ? "" : "s"); else if (diff < 60*60*24*7*2) result = format("%d day%s", diff / (60*60*24), diff / (60*60*24) == 1 ? "" : "s"); else if (diff < 60*60*24*7*6) result = format("%d week%s", diff / (60*60*24*7), diff / (60*60*24*7) == 1 ? "" : "s"); else if (diff < 60*60*24*356*2) result = format("%d month%s", diff / (60*60*24*30), diff / (60*60*24*30) == 1 ? "" : "s"); else result = format("%d year%s", diff / (60*60*24*365), diff /(60*60*24*365) == 1 ? "" : "s"); if(signedDiff < 0) return result ~ " ago"; else return "in " ~ result; }