/* modified w.c to only display uptime */

#include <sys/time.h>
#include <stdio.h>

#define SECSPERHOUR     (60 * 60)
#define SECSPERDAY      (24 * 60 * 60)

int 
main(void)
{

	struct timespec boottime;
	time_t uptime, now;
	int days, hrs, mins;

	time(&now);

	/*
	 * Print how long system has been up.
	 */
	if (clock_gettime(CLOCK_BOOTTIME, &boottime) != -1) {
		uptime = boottime.tv_sec;
		if (uptime > 59) {
			uptime += 30;
			days = uptime / SECSPERDAY;
			uptime %= SECSPERDAY;
			hrs = uptime / SECSPERHOUR;
			uptime %= SECSPERHOUR;
			mins = uptime / 60;
			if (days > 0)
				printf("%d day%s", days,
				    days > 1 ? "s" : "");
			if (hrs > 0 && mins > 0)
				printf("%2d:%02d", hrs, mins);
			else {
				if (hrs > 0)
					printf("%d h", hrs);
				if (mins > 0 || (days == 0 && hrs == 0))
					printf("%d min", mins);
			}
		} else
			printf("%d s", (int)uptime);
	}
	return 0;
}
