完整源码
#include <stdio.h>
#include <stdlib.h>
int main ( )
{
int n, a, b, c, xinqi, i, j, num, temp1, temp2, temp3;
printf ( "请输入年份:\n" ) ;
scanf ( "%d" , & n) ;
a = n/ 100 ;
b = n/ 4 ;
c = ( n+ b- a) % 7 ;
if ( c<= 2 )
xinqi = c+ 5 - ( ( n% 4 == 0 ) && ( n% 100 != 0 ) || ( n% 400 == 0 ) ) ;
else
{
xinqi = c- 2 - ( ( n% 4 == 0 ) && ( n% 100 != 0 ) || ( n% 400 == 0 ) ) ;
if ( xinqi == 0 )
xinqi = 7 ;
}
printf ( "-------------------%d年日历------------------\n\n" , n) ;
for ( i = 1 ; i <= 12 ; i++ )
{
printf ( "%d月\n" , i) ;
printf ( "----------------------------------------------\n" ) ;
printf ( " 日 一 二 三 四 五 六\n\n" ) ;
temp1 = 1 ;
if ( i== 2 )
num = 28 + ( ( n% 4 == 0 ) && ( n% 100 != 0 ) || ( n% 400 == 0 ) ) ;
else if ( i% 2 != 0 )
{
if ( i >= 1 && i<= 7 )
num = 31 ;
else
num = 30 ;
}
else if ( i% 2 == 0 )
{
if ( i >= 4 && i <= 6 )
num = 30 ;
else
num = 31 ;
}
if ( xinqi == 7 )
{
temp2 = 3 ;
temp3 = 7 ;
xinqi = num% 7 ;
}
else
{
temp2 = 5 * xinqi+ 3 ;
temp3 = 7 - xinqi;
xinqi = num+ xinqi- 28 ;
if ( xinqi> 7 )
xinqi = xinqi% 7 ;
}
for ( j = 1 ; j <= temp2; j++ )
printf ( " " ) ;
while ( temp1 <= num)
{
printf ( "%2d " , temp1++ ) ;
if ( temp1== temp3+ 1 || temp1== temp3+ 8 || temp1== temp3+ 15 || temp1== temp3+ 22 || temp1== temp3+ 29 )
printf ( "\n " ) ;
}
printf ( "\n\n\n" ) ;
}
system ( "pause" ) ;
return 0 ;
}
示例