struct Date { int day, month, year; }; // reads a date (in dd mm yyyy format) from the specfied input stream. // if an error of any sort (bad read, invalid date) occurs, the input // stream is left in the failed state. void readDate (Date &date, istream &is); // writes a date to the specified output stream (in dd/mm/yyyy format) void writeDate (const Date &date, ostream &os); // moves a date the specified number of days forward (positive day // values) or backwards (negative day values) void moveDate (Date &date, int days);