#include #include //strcmp, strchr #include int main(int argc,char *argv[]) { char c;//comma? long long ll; short s=0; if(argc < 2) { printf("usage: elapsedtime [-s|--short] seconds\n"); return 1; } argv++; if(!strcmp(*argv,"-s") || !strcmp(*argv,"--short")) { s=1; argv++; } char *f=strchr(*argv,'.'); ll=atoll(*argv); if(s) { if(ll / 3600) { printf("%lld:%lld:%02lld%s\n",ll / 3600, ll / 60 % 60,ll % 60,f?f:""); } else { printf("%lld:%02lld%s\n",ll / 60 % 60,ll % 60,f?f:""); } return 0; } if(ll / 31557600 ) { if(c) printf(", ");c=1;printf("%lld year%s", ll / 31557600, ll / 31557600 == 1 ? "" : "s"); } if(ll % 31557600 / 86400) { if(c) printf(", ");c=1;printf("%lld day%s", ll % 31557600 / 86400, ll % 31557600 / 86400 == 1 ? "" : "s"); } if(ll / 3600 % 24) { if(c) printf(", ");c=1;printf("%lld hour%s", ll / 3600 % 24, ll / 3600 % 24 == 1 ? "" : "s"); } if(ll / 60 % 60) { if(c) printf(", ");c=1;printf("%lld minute%s",ll / 60 % 60, ll / 60 % 60 == 1 ? "" : "s"); } if(ll % 60) { if(c) printf(", ");c=1;printf("%lld%s second%s",ll % 60,f?f:"", ll % 60 == 1 && !f ? "" : "s"); } putchar('\n'); return 0; }