Category : C++ Source Code
Archive   : CPPTUT.ZIP
Filename : DATE.H

 
Output of file : DATE.H contained in archive : CPPTUT.ZIP

// Chapter 5 - Program 10

// This date class is intended to illustrate how to write a non-
// trivial class in C++. Even though this class is non-trivial,
// it is still simple enough for a new C++ programmer to follow
// all of the details.

#ifndef DATE_H
#define DATE_H

class date {
protected:
int month; // 1 through 12
int day; // 1 through max_days
int year; // 1500 through 2200
static char out_string[25]; // Format output area
static char format; // Format to use for output

// Calculate how many days are in any given month
// Note - This is a private method which can be called only
// from within the class itself
int days_this_month(void);

public:
// Constructor - Set the date to the current date and set
// the format to 1
date(void);

// Set the date to these input parameters
// if return = 0 ---> All data is valid
// if return = 1 ---> Something out of range
int set_date(int in_month, int in_day, int in_year);

// Get the month, day, or year of the stored date
int get_month(void) { return month; };
int get_day(void) { return day; };
int get_year(void) { return year; };

// Select the desired string output format for use when the
// get_date_string is called
void set_date_format(int format_in) { format = format_in; };

// Return an ASCII-Z string depending on the stored format
// format = 1 Aug 29, 1991
// format = 2 8/29/91
// format = 3 8/29/1991
// format = 4 29 Aug 1991 Military time
// format = ? Anything else defaults to format 1
char *get_date_string(void);

// Return Jan Feb Mar Apr etc.
char *get_month_string(void);
};

#endif