|
|
1.1 ! root 1: .if n .ds La ' ! 2: .if n .ds Ra ' ! 3: .if t .ds La ` ! 4: .if t .ds Ra ' ! 5: .if n .ds Lq " ! 6: .if n .ds Rq " ! 7: .if t .ds Lq `` ! 8: .if t .ds Rq '' ! 9: .de Ch ! 10: \\$3\\*(Lq\\$1\\*(Rq\\$2 ! 11: .. ! 12: .TH GETDATE 3 "January 17, 1986" ! 13: .ds ]W Version B 2.10.3 ! 14: .SH NAME ! 15: getdate \- convert time and date from \s-2ASCII\s0 ! 16: .SH SYNOPSIS ! 17: .B #include <sys/types.h> ! 18: .br ! 19: .B #include <sys/timeb.h> ! 20: .PP ! 21: .B time_t getdate(buf, now) ! 22: .br ! 23: .B char *buf; ! 24: .br ! 25: struct timeb *now; ! 26: .SH DESCRIPTION ! 27: .I Getdate ! 28: is a routine that converts most common time specifications to standard UNIX ! 29: format. The first argument is the character string containing the ! 30: time and date; the second is the assumed current time (used for relative ! 31: specifications); if ! 32: .B NULL ! 33: is passed, ! 34: .IR ftime (3C) ! 35: is used to obtain the current time and timezone. ! 36: .PP ! 37: The character string consists of 0 or more specifications of the following ! 38: form: ! 39: .TP .75i ! 40: tod ! 41: A ! 42: .I tod ! 43: is a time of day, which is of the form ! 44: .IR hh [: mm [: ss ]] ! 45: (or ! 46: .IR hhmm ) ! 47: .RI [ meridian ] ! 48: .RI [ zone ]. ! 49: If no meridian \- ! 50: .B am ! 51: or ! 52: .B pm ! 53: \- is specified, a 24-hour clock is used. A ! 54: .I tod ! 55: may be specified as just ! 56: .I hh ! 57: followed by a ! 58: .IR meridian \&. ! 59: .TP .75i ! 60: date ! 61: A ! 62: .I date ! 63: is a specific month and day, and possibly a year. Acceptable formats are ! 64: .IR mm/dd [ /yy ] ! 65: and ! 66: .IR "monthname dd" "[, " yy ] ! 67: If omitted, the year defaults to the ! 68: current year; if a year is specified ! 69: as a number less than 100, 1900 is added. ! 70: If a number not followed by a day or relative time unit occurs, it will ! 71: be interpreted as a year if a ! 72: .IR tod , ! 73: .IR monthname , ! 74: and ! 75: .I dd ! 76: have already been specified; otherwise, it will be treated as a ! 77: .IR tod . ! 78: This rule allows the output from ! 79: .IR date (1) ! 80: or ! 81: .IR ctime (3) ! 82: to be passed as input to ! 83: .IR getdate . ! 84: .TP .75i ! 85: day ! 86: A ! 87: .I day ! 88: of the week may be specified; the current day will be used if appropriate. ! 89: A ! 90: .I day ! 91: may be preceded by a ! 92: .IR number, ! 93: indicating which instance of that day is desired; the default is ! 94: .BR 1 . ! 95: Negative ! 96: .I numbers ! 97: indicate times past. Some symbolic ! 98: .I numbers ! 99: are accepted: ! 100: .BR last , ! 101: .BR next , ! 102: and the ordinals ! 103: .B first ! 104: through ! 105: .B twelfth ! 106: .RB ( second ! 107: is ambiguous, and is not accepted as an ordinal number). ! 108: The symbolic number ! 109: .B next ! 110: is equivalent to ! 111: .BR 2 ; ! 112: thus, ! 113: .B "next monday" ! 114: refers not to the immediately coming Monday, but to the one a week later. ! 115: .TP .75i ! 116: relative time ! 117: Specifications relative to the current time are also accepted. ! 118: The format is ! 119: .RI [ number "] " unit ; ! 120: acceptable units are ! 121: .BR year , ! 122: .BR month , ! 123: .BR fortnight , ! 124: .BR week , ! 125: .BR day , ! 126: .BR hour , ! 127: .BR minute , ! 128: and ! 129: .BR second . ! 130: .PP ! 131: The actual date is formed as follows: first, any absolute date and/or time ! 132: is processed and converted. Using that time as the base, day-of-week ! 133: specifications are added; last, relative specifications are used. If a ! 134: date or day is specified, and no absolute or relative time is given, midnight ! 135: is used. ! 136: Finally, a correction is applied so that the correct hour of the day is ! 137: produced after allowing for daylight savings time differences. ! 138: .PP ! 139: .I Getdate ! 140: accepts most common abbreviations for days, months, etc.; in particular, ! 141: it will recognize them with upper or lower case first letter, and will ! 142: recognize three-letter abbreviations for any of them, with or without ! 143: a trailing period. Units, such as ! 144: .BR week s, ! 145: may be specified in the singular or plural. Timezone and meridian ! 146: values may be in upper or lower case, and with or without periods. ! 147: .SH FILES ! 148: /usr/lib/libu.a ! 149: .SH "SEE ALSO" ! 150: ctime(3), time(2) ! 151: .SH AUTHOR ! 152: Steven M. Bellovin (unc!smb) ! 153: .br ! 154: Dept. of Computer Science ! 155: .br ! 156: University of North Carolina at Chapel Hill ! 157: .SH BUGS ! 158: Because ! 159: .IR yacc (1) ! 160: is used to parse the date, ! 161: .I getdate ! 162: cannot be used a subroutine to any program that also needs ! 163: .IR yacc . ! 164: .br ! 165: The grammar and scanner are rather primitive; certain desirable and ! 166: unambiguous constructions are not accepted. Worse yet, the meaning of ! 167: some legal phrases is not what is expected; ! 168: .B next week ! 169: is identical to ! 170: .BR "2 weeks" . ! 171: .br ! 172: The daylight savings time correction is not perfect, and can get confused ! 173: if handed times between midnight and 2:00 am on the days that the ! 174: reckoning changes. ! 175: .br ! 176: Because ! 177: .IR localtime (2) ! 178: accepts an old-style time format without zone information, attempting ! 179: to pass ! 180: .I getdate ! 181: a current time containing a different zone will probably fail.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.