Problem :- Write A C Program To Print A Calendar By Taking Input From User Using Loop Like Taking a Start Date From User
Logic :- In this problem we are taking number of days and start date as input start day are given below .
Logic :- In this problem we are taking number of days and start date as input start day are given below .
Monday -0
Tuesday -1
Wednesday -2
Thursday -3
Friday -4
Saturday -5
Sunday -6
Date Must Start With Given Days so we use a code 0 to 6 Monday to Sunday
Try Yourself C Program to Count Number of Digits of A Number (Integer)
Solution :-
Output:-
Try Yourself C Program to Count Number of Digits of A Number (Integer)
Solution :-
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
//Ghanendra Yadav
int i,j,k,day,dt=1;
printf("C Program to Print a Calendar With Start With Input Day\n\n");
printf("Enter Total Numbers of Days in a Month : ");
scanf("%d",&day);
printf("\n\nEnter First Day Start From <0-Mon....5-Sat & 6-Sun> End With Sunday : ");
scanf("%d",&k);
printf("\nMon \tTue \tWed \tThu \tFri \tSat \tSun \n\n");
printf(" _________________________________________________\n\n");
for(j=k;j>0;j--)
{
printf("\t");
}
while(dt<=day)
{
if(k!=0)
{
if(k%7==0)
printf("\n");
}
printf("%d\t",dt);
dt++;
k++;
}
getch();
}
Output:-
Hi Ghanendra,
ReplyDeleteI don't understand what following of your code means. I understand that you use this to structure the 7-days week and start with a new row after 7 days, but I could not encrypt your code-logic yet.
while(dt<=day)
{
if(k!=0)
{
if(k%7==0)
printf("\n");
}
printf("%d\t",dt);
dt++;
k++;
}
Thank you!
Best regards,
Carlos
Hi Carlos
Deletefor(j=k;j>0;j--)
{
printf("\t");
}
\\this loop is to leave the space and start date 1 from the exact day, for example lets say in 'k' you have put 2 which is "Wednesday"
while(dt<=day)
{
if(k!=0)
{
if(k%7==0)
printf("\n");
}
printf("%d\t",dt);
dt++;
k++;
}
here the while loop will run unless the 'dt' will be equal to the given 'day' value
now the if(k!=0) this function is only for the condition when the 'k' will be assigned with '0' no extra line will be left, you may remove this function.
now if(k%7==0) if condition then the day no will shift to new line to again start from Monday till Sunday.
printing the 'day' no and updating 'dt' & 'k' by +1 when 'dt' will be equal to 28||29||30||31 the loop will end and the calendar will be displayed.