BSD 2 development
[unix-history] / src / daytime.c
/* Copyright (c) 1979 Regents of the University of California */
/*
* Print out the time to a human desirable
* accuracy.
*
* Author: Kurt Shoens (UCB) July 11, 1978
*/
char *hourNames[] {
"midnight",
"one",
"two",
"three",
"four",
"five",
"six",
"seven",
"eight",
"nine",
"ten",
"eleven",
"noon",
0
};
char *quadrants[] {
"o' clock",
"quarter past",
"half past",
"quarter 'til",
0
};
main(argc, argv)
char **argv;
{
int hour, *t, min, q, tv[2];
char *hs, *qs;
time(tv);
t = localtime(tv);
hour = t[2];
min = t[1];
if (argc >= 3) {
hour = atoi(argv[1]);
min = atoi(argv[2]);
}
q = (min+8) / 15;
if (q >= 4) {
q = 0;
hour++;
}
if (q > 2)
hour++;
if (hour >= 24)
hour = 0;
if (hour > 12)
hour =- 12;
hs = hourNames[hour];
qs = quadrants[q];
if ((hour == 12 || hour == 0) && q == 0) {
*hs = raise(*hs);
printf("%s\n", hs);
exit(0);
}
if (q == 0) {
*hs = raise(*hs);
printf("%s %s\n", hs, qs);
exit(0);
}
*qs = raise(*qs);
printf("%s %s\n", qs, hs);
exit(0);
}
/*
* Return the upper case version of the possibly
* lower case letter.
*/
raise(c)
{
if (c >= 'a' && c <= 'z')
c =+ 'A' - 'a';
return(c);
}