Day of the week: Difference between revisions

→‎{{header|C}}: remove time_t size limit
(→‎With GNU date: GNU Glibc defines time_t as 32bit on 32bit platforms)
(→‎{{header|C}}: remove time_t size limit)
Line 231:
 
=={{header|C}}==
<lang c>#define _XOPEN_SOURCE
 
<lang c>#include <stdio.h>
#include <time.h>
#include <string.h>
 
int main()
{
int iy;
struct tm mytimetm;
int i;
char buf[32];
time_t m;
for(i=2008; i<=2121; i++)
{
memset(&mytime, 0, sizeof(struct tm));
mytime.tm_mday = 25;
mytime.tm_mon = 11;
mytime.tm_year = i-1900;
m = mktime(&mytime);
if ( m < 0 ) {
printf("%d is the last year we can specify\n", i-1);
break;
}
if ( mytime.tm_wday == 0 )
{
printf("25 December %d is Sunday\n", i);
}
}
}</lang>
 
for (iy = 2008; iy <= 2121; iy++) {
The output of a run on a 32 bit machine is
sprintf(buf, "%d-12-25", y);
strptime(buf, "%Y-%m-%d", &tm);
if ( mytimetm.tm_wday == 0) puts(buf);
}
 
return 0;
<pre>
}</lang>
25 December 2011 is Sunday
25 December 2016 is Sunday
25 December 2022 is Sunday
25 December 2033 is Sunday
2037 is the last year we can specify
</pre>
 
=={{header|C++}}==
Anonymous user