or use this one, which is adapted from the Quake source code:
Code:
unsigned short CGeneral::GetBuildNumber()
{
const char *date = __DATE__;
char *mon[12] =
{ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
unsigned char mond[12] =
{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int m = 0, d = 0, y = 0;
for (m = 0; m < 11; m++) {
if (strncmp(&date[0], mon[m], 3) == 0)
break;
d += mond[m];
}
d += atoi( &date[4] ) - 1;
y = atoi( &date[7] ) - 2000;
unsigned short usBuildNumber = d + (int)((y - 1) * 365.25);
// Is it a leap year?
if ((y % 4) == 0 && m > 1) {
usBuildNumber += 1;
}
return usBuildNumber - 1267;
}