The logic to print a one-month calendar is as follows −
for(i=1;i<first;i++)
printf(" ");
for(i=1;i<=noofdays;i++){
printf("%3d",i);
if((first+i-1)%7==0)
printf("\n");
}Example
Following example accepts number of days and first day in a month from the user and prints the calendar of a month accordingly −
#include<stdio.h>
int main(){
int i,noofdays;
int first;
printf("enter no of days in a month:\n");
scanf("%d",&noofdays);
printf("enter first day in a month:\n");
scanf("%d",&first);
for(i=1;i<first;i++)
printf(" ");
for(i=1;i<=noofdays;i++){
printf("%3d",i);
if((first+i-1)%7==0)
printf("\n");
}
return 0;
}Output
enter no of days in a month: 30 enter first day in a month: 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30