--- /dev/null
+/* Copyright (C) 1991 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library 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 2, or (at your option)
+any later version.
+
+The GNU C Library 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 the GNU C Library; see the file COPYING. If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+#include <ansidecl.h>
+#include <localeinfo.h>
+#include <errno.h>
+#include <stdio.h>
+#include <time.h>
+
+
+/* Returns a string of the form "Day Mon dd hh:mm:ss yyyy\n"
+ which is the representation of TP in that form. */
+char *
+DEFUN(asctime, (tp), CONST struct tm *tp)
+{
+ static char result[26];
+
+ if (tp == NULL)
+ {
+ errno = EINVAL;
+ return(NULL);
+ }
+
+ if (sprintf(result, "%.3s %.3s %2d %.2d:%.2d:%.2d %d\n",
+ _time_info->abbrev_wkday[tp->tm_wday],
+ _time_info->abbrev_month[tp->tm_mon],
+ tp->tm_mday, tp->tm_hour, tp->tm_min,
+ tp->tm_sec, 1900 + tp->tm_year) != sizeof(result) - 1)
+ return(NULL);
+
+ return(result);
+}
--- /dev/null
+/* Copyright (C) 1991 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library 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 2, or (at your option)
+any later version.
+
+The GNU C Library 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 the GNU C Library; see the file COPYING. If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+#include <ansidecl.h>
+#undef __OPTIMIZE__ /* Avoid inline `ctime' function. */
+#include <time.h>
+
+#undef ctime
+
+
+/* Return a string as returned by asctime which
+ is the representation of *T in that form. */
+char *
+DEFUN(ctime, (t), CONST time_t *t)
+{
+ register struct tm *tp = localtime(t);
+ if (tp == NULL)
+ return NULL;
+ return asctime(tp);
+}
--- /dev/null
+/* Copyright (C) 1991 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library 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 2, or (at your option)
+any later version.
+
+The GNU C Library 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 the GNU C Library; see the file COPYING. If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+#include <ansidecl.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+
+/* Prints the date in the form "Day Mon dd hh:mm:ss ZZZ yyyy\n".
+ A simple test for localtime and strftime. */
+int
+DEFUN(main, (argc, argv), int argc AND char **argv)
+{
+ time_t t = time(NULL);
+ register struct tm *tp = localtime(&t);
+ register char good = tp != NULL;
+
+ if (good)
+ {
+ char buf[BUFSIZ];
+ good = strftime(buf, sizeof(buf), "%a %b %d %X %Z %Y", tp);
+ if (good)
+ puts(buf);
+ else
+ perror("strftime");
+ }
+ else
+ perror("localtime");
+
+ exit(good ? EXIT_SUCCESS : EXIT_FAILURE);
+ return(good ? EXIT_SUCCESS : EXIT_FAILURE);
+}
--- /dev/null
+/* Copyright (C) 1991 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library 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 2, or (at your option)
+any later version.
+
+The GNU C Library 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 the GNU C Library; see the file COPYING. If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+#include <ansidecl.h>
+#include <time.h>
+
+
+/* Return the difference between TIME1 and TIME0. */
+__CONSTVALUE
+double
+DEFUN(difftime, (time1, time0), time_t time1 AND time_t time0)
+{
+ return (double) (time1 - time0);
+}