//
// aegis - project change supervisor
// Copyright (C) 2007, 2008 Peter Miller
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see
// .
//
#include
#include
#include
void
format_elapsed(char *buf, size_t len, time_t secs)
{
time_t mins = secs / 60;
secs %= 60;
time_t hours = mins / 60;
mins %= 60;
if (hours == 0)
{
snprintf(buf, len, "%2dm%2.2ds", (int)mins, (int)secs);
return;
}
time_t days = hours / 24;
hours %= 24;
if (days == 0)
{
snprintf(buf, len, "%2dh%2.2dm", (int)hours, (int)mins);
return;
}
if (days < 100)
{
snprintf(buf, len, "%2dd%2.2dh", (int)days, (int)hours);
return;
}
snprintf(buf, len, "%5.2fy", days / 365.25);
}
nstring
format_elapsed(time_t nsec)
{
char buffer[100];
format_elapsed(buffer, sizeof(buffer), nsec);
return nstring(buffer);
}