126 lines
3.8 KiB
C++
Executable File
126 lines
3.8 KiB
C++
Executable File
/*
|
|
* TIMEDATE.H
|
|
*
|
|
* Header file for ArchiveLib 1.0
|
|
*
|
|
* Copyright (c) 1994 Greenleaf Software, Inc.
|
|
* All Rights Reserved
|
|
*
|
|
* DESCRIPTION
|
|
*
|
|
* This header file contains the class declaration for ALTimeDate.
|
|
*
|
|
* CLASS DEFINITIONS:
|
|
*
|
|
* ALTimeDate
|
|
*
|
|
* REVISION HISTORY
|
|
*
|
|
* May 26, 1994 1.0A : First release
|
|
*
|
|
*/
|
|
|
|
#ifndef _TIMEDATE_H
|
|
#define _TIMEDATE_H
|
|
|
|
#include <time.h>
|
|
|
|
/*
|
|
* class ALOpenInputFile
|
|
*
|
|
* DESCRIPTION
|
|
*
|
|
* class ALTimeDate is used strictly to keep track of the time/date
|
|
* stamp of an ALStorage object. The only place this class appears is
|
|
* as the mTimeDate member of ALStorage. It has a number of conversion
|
|
* utilities for loading and exporting its values in various formats.
|
|
* Since most of the ways we have to set time stamps for objects
|
|
* are not ANSI standard, we end up with quite a few conversion utilities.
|
|
*
|
|
* DATA MEMBERS
|
|
*
|
|
* miYear : The year just like you would expect, e.g 1994. A value of
|
|
* 0 in this field indicates an invalid time.
|
|
*
|
|
* miMonth : The month, 1-12.
|
|
*
|
|
* miDate : The date, 1-31.
|
|
*
|
|
* miHour : In 2400 format, 0 - 23.
|
|
*
|
|
* miMinute : 0 - 59
|
|
*
|
|
* miSecond : 0 -59,
|
|
*
|
|
* MEMBER FUNCTIONS
|
|
*
|
|
* ALTimeDate() : The constructor, sets all members to 0.
|
|
* ~ALTimeDate() : The destructor, has no work to do.
|
|
* operator new() : The memory allocation operator, only used
|
|
* when the library is inside a DLL.
|
|
* ToJulian() : Convert the internal m/d/y members to
|
|
* a julian day number.
|
|
* FromJulian() : Convert a julian day number to internal
|
|
* data members m/d/y.
|
|
* GetUnixTime() : Convert all members to a long in unix format,
|
|
* total seconds since 1/1/1970.
|
|
* GetDosTime() : Convert h:m:s data members to the unsigned int
|
|
* used in certain DOS commands.
|
|
* GetDosDate() : Convert m/d/y data members to the unsigned int
|
|
* used in certain DOS commands.
|
|
* SetTimeDate(long) : Set internal data members from a UNIX long.
|
|
* SetTimeDate(struct tm*) : Set internal data members from a DOS
|
|
* struct tm *.
|
|
* GetTimeDate() : Convert internal data members to a DOS struct tm *.
|
|
* Valid() : Indicate if a valid time has been set.
|
|
*
|
|
* REVISION HISTORY
|
|
*
|
|
* May 26, 1994 1.0A : First release
|
|
*
|
|
*/
|
|
|
|
|
|
class AL_CLASS_TYPE ALTimeDate {
|
|
/*
|
|
* Constructors, destructors, declarations, assignment operator
|
|
*/
|
|
public :
|
|
AL_PROTO ALTimeDate();
|
|
AL_PROTO ~ALTimeDate();
|
|
#if defined( AL_USING_DLL ) || defined( AL_BUILDING_DLL )
|
|
void AL_DLL_FAR * AL_PROTO operator new( size_t size );
|
|
#endif
|
|
/*
|
|
* I usually hide the copy constructor and assignment operators,
|
|
* but in this case they are OK
|
|
*
|
|
*
|
|
* Member functions
|
|
*/
|
|
public :
|
|
long AL_PROTO ToJulian();
|
|
void AL_PROTO FromJulian( long jdn );
|
|
long AL_PROTO GetUnixTime();
|
|
#if !defined( AL_WIN32S )
|
|
unsigned short int AL_PROTO GetDosTime();
|
|
unsigned short int AL_PROTO GetDosDate();
|
|
#endif /* #if !defined( AL_WIN32S ) */
|
|
void AL_PROTO SetTimeDate( long unix_time );
|
|
void AL_PROTO SetTimeDate( struct tm AL_DLL_FAR *tblock );
|
|
void AL_PROTO GetTimeDate( struct tm AL_DLL_FAR *tblock );
|
|
int AL_PROTO Valid(){ return miYear != 0; }
|
|
/*
|
|
* Data members
|
|
*/
|
|
protected :
|
|
short int miYear; /* What you expect, e.g. 1995 */
|
|
short int miMonth; /* 1-12 */
|
|
short int miDate; /* 1-31 */
|
|
short int miHour; /* 0-23 */
|
|
short int miMinute; /* 0-59 */
|
|
short int miSecond; /* 0-59 */
|
|
};
|
|
|
|
#endif
|