home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / disk / archive / nspark_1 / nspark-1.7.5 / date.c < prev    next >
C/C++ Source or Header  |  1993-08-20  |  1KB  |  58 lines

  1. /*
  2.  * manipulate date types
  3.  *
  4.  * $Header: date.c 1.4 92/12/07 $
  5.  * $Log:    date.c,v $
  6.  * Revision 1.4  92/12/07  17:17:47  duplain
  7.  * reformatted source.
  8.  * 
  9.  * Revision 1.3  92/11/06  12:43:06  duplain
  10.  * Removed check for "time-stamped header" in makedate().
  11.  * 
  12.  * Revision 1.2  92/10/06  12:12:10  duplain
  13.  * Fixed makedate().
  14.  * 
  15.  * Revision 1.1  92/09/29  18:02:17  duplain
  16.  * Initial revision
  17.  * 
  18.  */
  19.  
  20. #include <stdio.h>
  21. #include "spark.h"
  22.     
  23. #ifdef UNIX
  24. static char rcsid[] = "$Header: date.c 1.4 92/12/07 $";
  25. #endif /* UNIX */
  26. static char *monthnames[12] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
  27.                 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
  28. /*
  29.  * Build date structure from load and exec fields
  30.  */
  31. Date *
  32. makedate(header)
  33.     Header *header;
  34. {                        
  35.     static Date date;
  36.     register Halfword arcdate = header->date;
  37.     register Halfword arctime = header->time;
  38.  
  39.     date.second = (arctime & 0x1f) * 2;
  40.     date.minute = (arctime >> 5) & 0x3f;
  41.     date.hour = (arctime >> 11) & 0x1f;
  42.     date.day = arcdate & 0x1f;
  43.     date.month = (arcdate >> 5) & 0x0f;
  44.     date.year = ((arcdate >> 9) & 0x7f) + 80;
  45.     return (&date);
  46. }
  47.  
  48. char *
  49. monthname(month)
  50.     int month;
  51. {
  52.     if (month > 0 && month < 13)
  53.     return (monthnames[month-1]);
  54.     else
  55.     return ("XXX");
  56. }
  57.  
  58.