Lab/HW 3
Write a program that reads in the following data, all entered on one line with at least one space separating them:
If any one of these three conditions occurs, only one error message should print and no further code should be executed. If everything is good so far, then continue as below:
“30 days has September, April, June and November,
All the rest have 31 except February which has 28 but in a leap year has 29”
Page 97 in the textbook shows code to determine a leap year. A year is a leap year if (1) it’s divisible by 400 OR
(2) the year is divisible by 4 AND not divisible by 100.
So, if it’s a leap year any day up to and including 29 is valid, otherwise 28 is the largest date in February. If February has too many days, e.g., the input is 2 29 2001, print an error message stating
2001 is not a leap year, Feb can have only 28 days
5 18 2017 is a valid date
THESE TEST CASES MUST BE INCLUDED IN YOUR OUTPUT:
Enter month, day, year separated by spaces 6 30 2017
6 30 2017 is a valid date
Enter month, day, year separated by spaces 6 31 2017
month 6 can not have more than 30 days
Enter month, day, year separated by spaces -3 12 2019
-3 is not a valid month
Enter month, day, year separated by spaces 2 29 2000
2 29 2000 is a valid date
Enter month, day, year separated by spaces 2 30 2000
month 2 can not have 30 days
Enter month, day, year separated by spaces 2 -12 2019
month 2 can not have -12 days
Enter month, day, year separated by spaces 2 29 2001
2001 is not a leap year, 29 is invalid
Enter month, day, year separated by spaces 6 32 -109
year can not be negative
Enter month, day, year separated by spaces 6 32 2017
month 6 can not have more than 30 days
There are many ways to approach this problem. I recommend coding the input statements and steps 1-3 first and making sure they work properly.
Then move on to step 4.
Thank you!!!
code:
#include<stdio.h>
int leapyear(int year){//leapyear check function
if (year%400 == 0) // Exactly divisible by 400 e.g. 1600,
2000
return 0;
else if (year%100 == 0) // Exactly divisible by 100 and not by 400
e.g. 1900, 2100
return 1;
else if (year%4 == 0) // Exactly divisible by 4 and neither by 100
nor 400 e.g. 2016, 2020
return 0;
else // Not divisible by 4 or 100 or 400 e.g. 2017, 2018,
2019
return 1;
}
int main() {
int day,month,year;//initilization
int month1[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
printf("Enter month, day, year separated by spaces ");
scanf("%d %d %d",&month,&day,&year);//taking
input
if(month>12 || month<1){//check valid month
printf("%d is not a valid month",month);
}else if(day<1){//check valid day
printf("month %d can not have %d days",month,day);
}else if(year<1){//check valid year
printf("year can not be negative");
}else{
if(month!=2){//month is not 2
if(day<=month1[month-1]){//check for month have correct no of
days
printf("%d %d %d is a valid date",month,day,year);
}else{
printf("month %d can not have more than %d
days",month,month1[month-1]);
}
}else{
if(day>29){
printf("month %d can not have %d days",month,day);
}else{
if(leapyear(year)==0){ //check for leap year
printf("%d %d %d is a valid date",month,day,year);
}else if(day<=28){//if not leap year and day <=28
printf("%d %d %d is a valid date",month,day,year);
}else{
printf("%d is not a leap year, 29 is invalid",year);
}
}
}
}
return 0;
}
screenshot with output:


Lab/HW 3 Write a program that reads in the following data, all entered on one...
C Program Question 1: Write a program that reads a date from the keyboard and tests whether it contains a valid date. Display the date and a message that indicates whether it is valid. If it is not valid, also display a message explaining why it is not valid. The input date will have the format: mm/dd/yyyy Note that there is no space in the above format. A date in this format must be entered in one line. A valid...
Question 1: Write a program in C that reads a date from the keyboard and tests whether it contains a valid date. Display the date and a message that indicates whether it is valid. If it is not valid, also display a message explaining why it is not valid. The input date will have the format: mm/dd/yyyy Note that there is no space in the above format. A date in this format must be entered in one line. A valid...
Write a program that reads a string from keyboard and tests whether it contains a valid date. Display the date and a message that indicates whether it is valid. If it is not valid, also display a message explaining why it is not valid. The input date will have the format mm/dd/yyyy. A valid month value mm must be from 1 to 12 (January is 1). The day value dd must be 1 from to a value that is appropriate...
CK CUNYOMP 167 al 2019/chapter/ X M X C Does Musical WePACCOU XG Persol chapter/4/section/23 Inbox (2,146) - ngomez Olongw 4.23 Homework 4-3 Write a Java program that asks the user for a gate entered as 4 integers dayNumber monthNumber date year. Where dayNumber An integer from 1-7 where 1 Sunday, 2 - Monday.... 7 Saturday monthNumber An integer from 1-12, where 1 - January, 2 - February, 12 - December date An integer from 1-31 representing the date. year...
JAVA CODE Beginner. please use if, else if or switch statements, but don't use arrays, please Write a program that reads a string from the keyboard and tests whether it contains a valid date. Display the date and a message that indicates whether it is valid. If it is not valid, also display a message explaining why it is not valid. The input date will have the format mm/dd/yyyy. A valid month value mm must be from 1 to 12...
Extend this date validation program, so that it checks for valid
leap years (in which the month February has 29, instead of 28,
days). A leap year is any year that is divisible by 4 but not
divisible by 100, unless it is also divisible by 400. Do not allow
February to have 29 days on years that are not leap years.
**Please view both photos for the entire code and post new code
with the leap year modification. Thank...
Write a Java console application that reads a string from the keyboard and tests whether it contains a valid date. Display the date and a message that indicates whether it is valid. If it is not valid, also display a message explaining why it is NOT valid. The input date will have the format mm/dd/yyyy. A valid month value mm must be from 1 to 12 (January is 1). You can use: String monthPart = inputDate.substring(0, 2); int month =...
Write a C# program that prints a calendar for a given year. Call this program calendar. This program needs to use Switch Case in order to call the methods and format to print each month. The program prompts the user for two inputs: 1) The year for which you are generating the calendar. 2) The day of the week that January first is on, you will use the following notation to set the day of the week: ...
Write a C# program that prints a calendar for a given year. Call this program calendar. The program prompts the user for two inputs: 1) The year for which you are generating the calendar. 2) The day of the week that January first is on, you will use the following notation to set the day of the week: 0 Sunday 1 Monday 2 Tuesday 3 Wednesday 4 Thursday 5 Friday 6 Saturday Your program should...
Write a C# program that prompts a user to enter a birth month and day. Display an error message if the month is invalid (not 1 through 12) or the day is invalid for the month (for example, not between 1 and 31 for January or between 1 and 29 for February). If the month and day are valid, display them with a message.