///
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;
}
Suggestion Box / Bug Report