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("
"); }

Example

 Live Demo

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:
");    scanf("%d",&noofdays);    printf("enter first day in a month:
");    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("
");    }    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

Advertisements