X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;ds=sidebyside;f=libctsupport%2Ftimedate.cpp;fp=libctsupport%2Ftimedate.cpp;h=0000000000000000000000000000000000000000;hb=2f3d6e2580db607105bb072b13e4aff453ae4495;hp=458066f9ddada8c492acf75d670502191da72a92;hpb=08f34bf3ba14d4f436f4d2ef0ee5af1d6eb266ac;p=ctsim.git diff --git a/libctsupport/timedate.cpp b/libctsupport/timedate.cpp deleted file mode 100644 index 458066f..0000000 --- a/libctsupport/timedate.cpp +++ /dev/null @@ -1,393 +0,0 @@ -/***************************************************************************** -** This is part of the CTSim program -** Copyright (C) 1983-2000 Kevin Rosenberg -** -** $Id: timedate.cpp,v 1.2 2000/06/19 19:04:05 kevin Exp $ -** -** This program is free software; you can redistribute it and/or modify -** it under the terms of the GNU General Public License (version 2) as -** published by the Free Software Foundation. -** -** 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, write to the Free Software -** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -******************************************************************************/ - -/*----------------------------------------------------------------------*/ -/* ROUTINES THAT MANAGE TIME */ -/*----------------------------------------------------------------------*/ - -#include -#include -#include "ctsupport.h" - - -/* NAME - * td_get_time Return time of day - * - * SYNOPSIS - * t = td_get_time (t) - * TIME *t; Returned time - */ - -TIME * -td_get_time (TIME *t) -{ - time_t currtime; - struct tm *tm; - - currtime = time(NULL); - tm = localtime(&currtime); - - t->hour = tm->tm_hour; - t->minute = tm->tm_min; - t->second = tm->tm_sec; - t->ms = 0; - - return (t); -} - - -DATE * -td_get_date (DATE *d) -{ - time_t t = time(NULL); - struct tm *lt = localtime(&t); - - d->year = lt->tm_year + 1900; - d->month = lt->tm_mon; - d->month++; - d->date = lt->tm_mday; - d->dow = lt->tm_wday; - d->dow++; - - return (d); -} - -double td_current_sec (void) -{ - TIME t; - - td_get_time (&t); - return (td_time_to_sec (&t)); -} - - -double -td_time_to_sec (TIME *t) -{ - double ts; - - ts = t->hour * 3600.; - ts += t->minute * 60.; - ts += t->second; - ts += t->ms / 1000.; - - return (ts); -} - - -TIME * -td_time_sub (const TIME *t1, const TIME *t2, TIME *tdiff) -{ - tdiff->hour = t1->hour - t2->hour; - tdiff->minute = t1->minute - t2->minute; - tdiff->second = t1->second - t2->second; - tdiff->ms = t1->ms - t2->ms; - - return td_time_norm (tdiff); -} - - -TIME * -td_time_add (const TIME *t1, const TIME *t2, TIME *tsum) -{ - tsum->ms = t1->ms + t2->ms; - tsum->second = t1->second + t2->second; - tsum->minute = t1->minute + t2->minute; - tsum->hour = t1->hour + t2->hour; - - return td_time_norm (tsum); -} - - -TIME * -td_time_copy (TIME *to, const TIME *from) -{ - to->ms = from->ms; - to->second = from->second; - to->minute = from->minute; - to->hour = from->hour; - - return (to); -} - - -/* NAME - * td_time_norm Normalize time in structure - * - * SYNOPSIS - * t = td_time_norm (t) - * TIME *t Time to be normalized - */ - -TIME * -td_time_norm (TIME *t) -{ - while (t->ms < 0) { - t->ms += 1000; - t->second--; - } - while (t->second < 0) { - t->second += 60; - t->minute--; - } - while (t->minute < 0) { - t->minute += 60; - t->hour--; - } - - while (t->ms > 1000) { - t->ms -= 1000; - t->second++; - } - while (t->second > 60) { - t->second -= 60; - t->minute++; - } - while (t->minute > 60) { - t->minute -= 60; - t->hour++; - } - - return (t); -} - - -/* NAME - * td_get_tmdt Return current time and date - * - * SYNOPSIS - * get_tmdt (td) - * TIMEDATE *td Pointer to structure that holds time & date - */ - -void -td_get_tmdt (TIMEDATE *td) -{ - td_get_date (&td->d); - td_get_time (&td->t); -} - - -/* NAME - * td_str_tmdt Put time & date into string - * - * SYNOPSIS - * str = td_str_tmdt (td) - * TIMEDATE *td Pointer ot time & date structure - * char *str Pointer to output string (Width = 21 chars) - * - * NOTES - * str points to a area of memory devoted to this routine - * DO NOT make any changes to str - */ - -const char * -td_str_tmdt (const TIMEDATE *td) -{ - static char str[80]; - - strncpy (str, td_str_date(&td->d), sizeof(str)); - strncat (str, " ", sizeof(str)); - strncat (str, td_str_stime(&td->t), sizeof(str)); - - return (str); -} - - -/* NAME - * td_str_time Convert time into long string form - * - * SYNOPSIS - * str = td_str_time (t) - * char *str Output string (Field width = 12 chars) - * TIME *t Time to be converted - */ - -const char * -td_str_time (const TIME *t) -{ - static char str[80]; - char am_pm; - int hour; - - hour = t->hour; - if (hour < 12) { - am_pm = 'a'; - if (hour == 0) - hour = 12; - } else if (hour >= 12) { - am_pm = 'p'; - if (hour > 12) - hour -= 12; - } - - snprintf (str, sizeof(str), "%2d:%02d:%02d.%03d%c", - hour, t->minute, t->second, t->ms, am_pm); - - return (str); -} - - - -/* NAME - * td_str_stime Convert time into short string form - * - * SYNOPSIS - * str = td_str_stime (t) - * char *str Output string (Field width = 6 chars) - * TIME *t Time to be converted - */ - -const char * -td_str_stime (const TIME *t) -{ - static char str[80]; - char am_pm; - int hour; - - hour = t->hour; - if (hour < 12) { - am_pm = 'a'; - if (hour == 0) - hour = 12; - } else if (hour >= 12) { - am_pm = 'p'; - if (hour > 12) - hour -= 12; - } - - snprintf (str, sizeof(str), "%2d:%02d%c", - hour, t->minute, am_pm); - - return (str); -} - - -/* NAME - * td_str_date Convert date to string form - * - * SYNOPSIS - * str = td_str_date (d) - * DATE *d Date to be converted - * char *str Pointer to output string (Width = 8 chars) - * - * NOTES - * DO NOT make any changes to str. It belongs to this routine - */ - -const char * -td_str_date (const DATE *d) -{ - static char str[80]; - - snprintf (str, sizeof(str), "%2d-%02d-%02d", d->month, d->date, d->year - 1900); - - return (str); -} - -/*----------------------------------------------------------------------------- - * NAME - * td_str_cdate Convert date to a character string - * - * SYNOPSIS - * str = td_str_cdate (d) - * DATE *d Date to convert - * char *str Pointer to date in character format - * - * DESCRIPTION - * The date is put in the form: - * , , - * - * Field width ranges from 17 to 29 characters - * - * NOTES - * str belongs to this routine, do NOT alter str - *---------------------------------------------------------------------------*/ - - -char * -td_str_cdate (DATE *d) -{ - static char str[50]; - char temp[50]; - - strcpy (str, ""); - - if (d->dow != 0) { /* only print day name if dow != 0 */ - strcat (str, td_day_name(d->dow)); - strcat (str, ", "); - } - - snprintf (temp, sizeof(temp), "%s %d, %d", td_month_name(d->month), d->date, d->year); - strcat (str, temp); - - return (str); -} - - -/*--------------------------------------------------------------*/ -/* td_month_name(int n) */ -/* return pointer to name of month given month number, n */ -/*--------------------------------------------------------------*/ -char * -td_month_name ( /* return name of n-th month */ - int n -) -{ - static char *name[] = { - "", - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December" - }; - - return ((n < 1 || n > 12) ? name[0] : name[n]); -} - - -/*--------------------------------------------------------------*/ -/* td_day_name(int n) */ -/* return pointer to name of day given day number, n (1..7)*/ -/*--------------------------------------------------------------*/ -char * -td_day_name (int n) -{ - static char *name[] = { - "", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday", - "Sunday" - }; - - return ((n < 1 || n > 7) ? name[0] : name[n]); -}