Computer >> Computer tutorials >  >> Programming >> C programming

How to print a one-month calendar of user choice using for loop in C?


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