#include <iostream>

#define TOTAL_DAYS(day,month,year) (day + month*31 + year*365)

namespace checkingDate
{
#define C(i) static const char c##i = __DATE__[i];

	C(0); C(1); C(2); C(3);
	C(4); C(5); C(6); C(7);
	C(8); C(9); C(10);

	static const int current_date = c4 == ' ' ? c5 - '0' : c5 - '0' + 10;

	static const int current_month = (
		c0 == 'J' // Jan Jun Jul
		? (c1 == 'a' ? 1 : (c2 == 'n' ? 6 : 7))
		: c0 == 'F' ? 2
		: c0 == 'M' // Mar May
		? (c2 == 'r' ? 3 : 5)
		: c0 == 'A' // Apr Aug
		? (c1 == 'p' ? 4 : 8)
		: c0 == 'S' ? 9
		: c0 == 'O' ? 10
		: c0 == 'N' ? 11
		: 12
		);

	static const int current_year = ((c7 - '0') * 1000) + ((c8 - '0') * 100) + ((c9 - '0') * 10) + (c10 - '0');
	static const int totalDays = TOTAL_DAYS(current_date, current_month, current_year);
}

#	define TODO(day,month,year, str)  static_assert(checkingDate::totalDays - TOTAL_DAYS(day,month,year)<30, "old msg");

int main()
{
	TODO(13, 8, 2015, "...");
}


