#include <iostream>
using namespace std;

const int DAYS = 0x08;

class Date
{
private:
	uint8_t day, month, year;

    uint8_t bcdToUint(uint8_t const nybbles);
public:
	Date():day(1), month(1), year(00)   // lnitialisierungsliste mit konstante Parameterwerten
	{}
	// Initialisierungsliste über parametrisierten Konstruktor
	Date(uint8_t _day, uint8_t _month, uint8_t _year):day(_day), month(_month), year(_year)
	{  // entspircht:  day = _day; ....
	}
	~Date() {printf("Good bye\n");}			// Destruktor
    uint8_t GetDay();	// Methode
};

uint8_t Date::bcdToUint(uint8_t const nybbles)
{
    day = (nybbles>>4)*10 + (nybbles & 0x0F);
    return day;
}
uint8_t Date::GetDay()
{
    //return bcdToUint(day & 0x3F);
    return day;
}

int main()
{
	Date date1;				// Instanziierung mit Standard Konstruktor und 
	Date date2(18,4,15);  	// mit parametrisierten Konstruktor
	printf("GetDay Test\n");
	printf("Day 1: %d\n", date1.GetDay());
	printf("Day 2: %d\n", date2.GetDay());
  return 0;
}
