This is MiscTime.rtf in view mode; [Download] [Up]
Release 1.0 Copyright ©1993 by Don Yacktman. All Rights Reserved.
MiscTime
Inherits From: Object
Conforms To: NXTransport
Declared In: misckit/MiscTime.h
Class Description
This documentation is still incomplete, and the class itself is only partway implemented. Sorry.
MiscTime is used to store a time, accurate from years down to microseconds. You can add and subtract MiscTimes from each other and specify how to generate a string value for the time. It can calculate the day of the week for a given date, as well. If used to measure time in a relative sense, then the day of week functions are disabled since they don't make sense semantically. A MiscTime object may easily be initialized to an arbitrary time or set to the current time on the system clock. It may also be sent bycopy over a distributed objects link and archived to a file.
You can use the format: method to display a MiscTime as a string, using a variety of different printf-like formatting codes. For instance, [aMiscTime format:"%A %B %d %H:%M"] returns a string in the style of "Thursday September 29 02:28". See man strftime for the full details of the format conversions supported by the format: method.
The day of the week will be recalculated as needed. If it is calculated and then the date is changed MiscTime will do the right thing and recalculate it. Note that if you override any of the 'set', 'add', or 'subtract' methods you should probably call the super's method, otherwise the day of week functioning may not work.
There was some confusion in earlier implementations about the yearĐsometimes it was number of years since 1900, or 1970, or the actual year. Now, use the actual year for everything to work right. If it is 1995, set the year as 1995, and not 95!
Instance Variables
BOOL isRelative;
long microsecond;
long second;
long minute;
long hour;
long dow;
long day;
long month;
long year;
isRelative Whether the MiscTime object is an absolute or relative time.
microsecond The microsecond (0 ± 999,999).
second The second (0 ± 59).
minute The minute (0 ± 59).
hour The hour (0 ± 23).
dow The day of the week (-1 ±€6). dow is -1 if the day of the week is unknown; for example, if it has not yet been calculated.
day The day of the month (0 ± 27/28/29/30).
month The month (0 ± 11).
year The year.
Method Types
Information on days, months, years + (int)daysInMonth:(int)aMonth ofYear:(int)aYear
+ (int)daysUpToMonth:(int)aMonth ofYear:(int)aYear
+ (int)isLeapYear:(int)aYear
Initializing and freeing a MiscTime ± init
± initWithCurrentTime
Formatting a MiscTime as a string ± (const char *)format:(const char *)format
Changing a MiscTime ± setDay:
± setDayOfWeek:
± setHour:
± setMicrosecond:
± setMinute:
± setMonth:
± setRelative:
± setSecond:
± setYear:
Manipulating a MiscTime ± addDays:
± addHours:
± addMicroseconds:
± addMinutes:
± addMonths:
± addSeconds:
± addTime:
± addYears:
± calcDayOfWeek
± subtractDays:
± subtractHours:
± subtractMicroseconds:
± subtractMinutes:
± subtractMonths:
± subtractSeconds:
± subtractTime:
± subtractYears:
Querying attributes ± day
± dayOfWeek
± doubleValue
± floatValue
± hour
± intValue
± isRelative
± microsecond
± minute
± month
± second
± stringValue
± year
Archiving ± read:
± write:
Class Methods
daysInMonth:ofYear:
+ (int)daysInMonth:(int)aMonth
ofYear:(int)aYear
Returns the number of days in the month aMonth for the year aYear.
daysUpToMonth:ofYear:
+ (int)daysUpToMonth:(int)aMonth
ofYear:(int)aYear
Returns the number of days before aMonth that must pass for the year aYear. (eg 151 days pass before the first day of June unless it's a leapyear in which case it is 152 days)
isLeapYear:aYear
+ (int)isLeapYear:(int)aYear
Returns YES if aYear is a leap year, NO otherwise.
Instance Methods
addDays:
- addDays:(long)t
Adds t days to the MiscTime.
See also: - myReference
addHours:
- addHours:(long)t
Adds t hours to the MiscTime.
See also: - myReference
addMicroseconds:
- addMicroseconds:(long)t
Adds t microseconds to the MiscTime.
See also: - myReference
addMinutes:
- addMinutes:(long)t
Adds t minutes to the MiscTime.
See also: - myReference
addMonths:
- addMonths:(long)t
Adds t months to the MiscTime.
See also: - myReference
addSeconds:
- addSeconds:(long)t
Adds t seconds to the MiscTime.
See also: - myReference
addTime:
- addTime:aTime
Adds the MiscTime values of aTime to the instance. If aTime is not a MiscTime this method simply returns nil. Note that this method does not test to make sure aTime is a relative time.
See also: - myReference
addWeeks:
- addWeeks:(long)t
Adds t weeks to the MiscTime.
See also: - myReference
addYears:
- addYears:(long)t
Adds t years to the MiscTime.
See also: - myReference
copyTimeFrom:
- copyTimeFrom:aTime
Copies the time from aTime.
See also: - myReference
dayOfWeek
- (int)dayOfWeek
Returns the day of the MiscTime. Note that the first day of the month is the 0th. eg, the first of January would be represented by a MiscTime as having month=0, day=0.
See also: - myReference
doubleValue
- (double)doubleValue
Returns the 0.0. BUG: not useful.
See also: - myReference
first.
- calcDayOfWeek // set the year, month, and day first.
Method description here.
See also: - myReference
floatValue
- (float)floatValue
Returns the 0.0. BUG: not useful.
See also: - myReference
format:
- (const char *)format:(const char *)fmtString
Returns a string int the Unix function strftime format for the MiscTime.
See also: - myReference
hour
- (int)hour
Returns the hour of the MiscTime.
See also: - myReference
initWithCurrentTime
- initWithCurrentTime
Initializes the new MiscTime instance. All date values are set to represent the current date, which is found using the Unix functions gettimeofday and localtime. The year is set to be the complete year, however, not the year relative to 1900.
See also: - initWithTime_t
initWithTime_t:
- initWithTime_t: (time_t)aTime
Initializes the new MiscTime instance. All date values are set to represent the date passed in (time_t) aTime. aTime is parsed using the Unix function and localtime. The year is set to be the complete year, however, not the year relative to 1900.
See also: - myReference
intValue
- (int)intValue
Returns the number of seconds since 1970. BUG: does not include leapyears (or seconds).
See also: - myReference
isAfter:
- (BOOL)isAfter:aTime
Returns YES if the instance of the MiscTime is after aTime (ie at a later date).
See also: - myReference
isEqual:
- (BOOL)isEqual:aTime
Returns YES if the instance of the MiscTime at the same aTime (ie the same date).
See also: - myReference
isRelative
- (BOOL)isRelative
Returns YES if the date has been set to be relative, NO otherwise.
See also: - setRelative
microsecond
- (int)microsecond
Returns the microsecond of the MiscTime.
See also: - myReference
minute
- (int)minute
Returns the minute of the MiscTime.
See also: - myReference
month
- (int)month
Returns the month of the MiscTime. Note that January is counted as the 0th month, February is the 1st.
See also: - myReference
read:
- read:(NXTypedStream *)stream
Reads the MiscTime from the typed stream stream.
See also: - myReference
second
- (int)second
Returns the second of the MiscTime.
See also: - myReference
setDay:
- setDay:(int)t
Sets the day to be t.
See also: - myReference
setDayOfWeek:
- setDayOfWeek:(int)t
Sets the day of the week to be t. Note: If you set the day, month, or year after you set the day of week the day of week will be recalculated next time it is requested.
See also: - myReference
setHour:
- setHour:(int)t
Sets the hour to be t.
See also: - myReference
setMicrosecond:
- setMicrosecond:(int)t
Sets the microsecond to be t.
See also: - myReference
setMinute:
- setMinute:(int)t
Sets the minute to be t.
See also: - myReference
setMonth:
- setMonth:(int)t
Sets the month to be t. Sets the day to be t.
See also: - myReference
setRelative:
- setRelative:(BOOL)t
Sets wether the date is relative. Note that being a relative date does not affect the functioning of the MiscTime in any way except that it will reply YES if it is sent an isRelative message.
See also: - isRelative
setSecond:
- setSecond:(int)t
Sets the second to be t.
See also: - myReference
setYear:
- setYear:(int)t
Sets the year to be t. Sets the day to be t.
See also: - myReference
stringValue
- (const char *)stringValue
Returns a string of the Unix function strftime format "%H : %M : %S" which is the (24 hour) hour : minute : second of the MiscTime.
See also: - format
subtractDays:
- subtractDays:(long)t
Subtracts t days from the MiscTime.
See also: - myReference
subtractHours:
- subtractHours:(long)t
Subtracts t hours from the MiscTime.
See also: - myReference
subtractMicroseconds:
- subtractMicroseconds:(long)t
Subtracts t microseconds from the MiscTime.
See also: - myReference
subtractMinutes:
- subtractMinutes:(long)t
Subtracts t minutes from the MiscTime.
See also: - myReference
subtractMonths:
- subtractMonths:(long)t
Subtracts t months from the MiscTime.
See also: - myReference
subtractSeconds:
- subtractSeconds:(long)t
Subtracts t seconds from the MiscTime.
See also: - myReference
subtractTime:
- subtractTime:aTime
Subtracts the MiscTime values of aTime from the instance. If aTime is not a MiscTime this method simply returns nil. Note that this method does not test to make sure aTime is a relative time.
See also: - myReference
subtractWeeks:
- subtractWeeks:(long)t
Subtracts t weeks from the MiscTime.
See also: - myReference
subtractYears:
- subtractYears:(long)t
Subtracts t years from the MiscTime.
See also: - myReference
usecs.
- (int)_nintValue // private method, does intValue w/o usecs.
Returns the number of microseconds of the MiscTime instance.
See also: - myReference
write:
- write:(NXTypedStream *)stream
Writes the MiscTime to the typed stream stream.
See also: - myReference
year
- (int)year
Returns the year of the MiscTime.
See also: - myReference
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.