计算从计算机上输入的年月日,属于这一年的第几天
第一种,使用if-else来判断
import java.util.Scanner;
public class Date{
public static void main(String [] args){
//声明一个整型变量sum ,统计总天数
int sum=0;
//创建new 扫描对象,扫描用户的键盘输入
Scanner input = new Scanner(System.in);
System.out.println("请输入年份:");
//声明一个整数变量year,接收用户输入的年份
int year=input.nextInt();
System.out.println("请输入月份: ");
//声明一个整数变量month,接收用户输入的月份
int month=input.nextInt();
while(month<=0||month>=13){
System.out.println("请重新输入月份");
month=input.nextInt();
}
System.out.println("请输入天数: ");
//声明一个整数变量day,接收用户输入的日期
int day=input.nextInt();
while(day<=0|| day>=32)
{
System.out.println("请重新输入日期");
day=input.nextInt();
}
for(int i=1;i<month;i++)
{ if(i==4||i==6||i==9||i==11)
{
sum+=30;
}
else if(i==2&&((year%4==0&&year%100!=0)||(year%400==0)))
{
sum+=29;
}
else if(i==2&&!((year%4==0&&year%100!=0)||(year%400==0)))
{
sum+=28;
}
else{
sum+=31;
}
}
sum+=day;
System.out.println("是这一年的第"+sum+"天");
}
}
第二种,使用switch case来编程,使用正序思想
import java.util.Scanner;
public class DaysOfYear{
public static void main(String[] args){
//声明一个整型变量sum ,统计总天数
int total=0;
//创建new 扫描对象,扫描用户的键盘输入
Scanner input = new Scanner(System.in);
System.out.println("请输入年份:");
//声明一个整数变量year,接收用户输入的年份
int year=input.nextInt();
System.out.println("请输入月份: ");
//声明一个整数变量month,接收用户输入的月份
int month=input.nextInt();
while(month<=0||month>=13){
System.out.println("请重新输入月份");
month=input.nextInt();
}
System.out.println("请输入天数: ");
//声明一个整数变量date,接收用户输入的日期
int date=input.nextInt();
while(date<=0|| date>=32)
{
System.out.println("请重新输入日期");
date=input.nextInt();
}
//但是7月前的1-6月都是完整过完了,迭代输入月份以前的所有月
for(int m=1;m<month;m++)
{//每循环一次,则代表一个月份//任何一个变量再后续使用时,一定要有值//一年中31天的月份更普遍//默认就有31天
int daysOfMonth=31;
//System.out.println(days);
switch(m)
{case 4:
case 6:
case 9:
case 11:
daysOfMonth=30;
break;
case 2:
//2月份普遍28天
daysOfMonth=28;
//只有闰年时才有29天
if(((year%4==0&&year%100!=0)||(year%400==0)))
{//System.out.println(month+"月有29天");daysOfMonth=29;}break;}
//算出每个月有多少天,累加到总天数中
total+=daysOfMonth;}
//循环结束了,则前面几个月天数总和就计算出来了
//再把输入的当月天数累加进去
total+=date;
System.out.println(total);}}
第三种,使用switch-case来编程,使用倒序思想
import java.util.Scanner;
public class DaysOfYearU1{
public static void main(String[] args){
//声明一个整型变量sum ,统计总天数
int total=0;
//创建new 扫描对象,扫描用户的键盘输入
Scanner input = new Scanner(System.in);
System.out.println("请输入年份:");
//声明一个整数变量year,接收用户输入的年份
int year=input.nextInt();
System.out.println("请输入月份: ");
//声明一个整数变量month,接收用户输入的月份
int month=input.nextInt();
while(month<=0||month>=13){
System.out.println("请重新输入月份");
month=input.nextInt();
}
System.out.println("请输入天数: ");
//声明一个整数变量date,接收用户输入的日期
int date=input.nextInt();
while(date<=0|| date>=32)
{
System.out.println("请重新输入日期");
date=input.nextInt();
} //但是7月前的1-6月都是完整过完了,迭代输入月份以前的所有月switch(month-1){case 11:total+=30;case 10:total+=31;case 9:total+=30;case 8:total+=31;case 7:total+=31;case 6:total+=30;case 5:total+=31;case 4:total+=30;case 3:total+=31;case 2://2月份普遍28天int daysOfMonth=28;//只有闰年时才有29天if(((year%4==0&&year%100!=0)||(year%400==0))){//System.out.println(month+"月有29天");daysOfMonth=29;}total+=daysOfMonth;case
1:total+=31;}//循环结束了,则前面几个月天数总和就计算出来了//再把输入的当月天数累加进去total+=date;System.out.println(total);}}
还没有评论,来说两句吧...