java 新手for if switch的综合运用实例
学习目标:
学习运用if条件语句
学习运用switch条件语句
学习运用for循环语句
学习内容:
输入当前的年份月份日期,并输入出生年份月份日期,计算出相隔多少天.
一、实现思想
对于没有学过编程的人来说,就运用一个比较麻烦但是理解起来比较容易的方法来写(就以生日为2000年 6月 1日 当前日子为2020年6月2日来举例)
1:首先计算出当前日子到当前月份月底日子的天数(6月1日到6月30日的总天数Day1),这其中要判断该月是大月(31天)还是小月(30天),或者是2月(29天/28天)
2:然后计算该月下一个月的1号(7月1日)到年底(12月31日)的总天数Day2,这其中要运用for循环,其中遇到大月(31天)就加31小月(30天)就加30,2月同理要进行判断
3:计算下一年(2001年1月1日)到当前年的上一年年底(2019年12月31日)的总天数Day3,同理用for循环,其中用if判断闰年和平年
4:计算当前日子(6月2日)到当前月份一号(6月1日)的总天数Day4
5:计算上一个月月底(2020年5月31号)到当年年初(2020年1月1号)的总天数Day5,判断同上;
6返回值
7在main方法中调用该方法
二、实现代码
1
public int count(int year ,int month,int day,int year1,int month1,int day1)
{
int all=0;
int differ=0;
int differ1=0;
int differ2=0;
int differ3=0;
//计算出生月的日期到该月31号的总天数
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
differ=31-day;
break;
case 2:if(year%4==0&&year%100!=0||year%400==0)
{
differ=29-day;
break;
}
else {
differ=28-day;
break;
}
case 4:
case 6:
case 9:
case 11:
differ=30-day;
break;
}
2.
//计算出生月的下一个月的1号到今年年底的总天数
for(int i=month+1;i<=12;i++)
{
switch(i)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
differ1=differ1+31;
break;
case 2:
if(year%4==0&&year%100!=0||year%400==0)
{
differ1=differ1+29;
}
else {
differ1=differ1+28;
}
break;
case 4:
case 6:
case 9:
case 11:
differ1=differ1+30;
break;
}
}
3.
//计算下一年的1月1号到当前年份上一年12月31号的总天数
for(int j=year+1;j<year1;j++)
{
if(j%4==0&&j%100!=0||j%400==0)
{
all=all+366;
}
else {
all=all+365;
}
}
4.
//计算下一年的1月1号到当前年份上一年12月31号的总天数
//计算当前月份到当月1号的总天数
differ2=day1;
5.
for(int k=1;k<=(month1-1);k++)
{
switch(k)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
differ3=31+differ3;
break;
case 2:if(year1%4==0&&year1%100!=0||year1%400==0)
{
differ3=29+differ3;
break;
}
else {
differ3=28+differ3;
break;
}
case 4:
case 6:
case 9:
case 11:
differ3=30+differ3;
break;
}
}
6.
//返回值
return all+differ+differ1+differ2+differ3;
7.
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入出生年份:");
int y=sc.nextInt();
System.out.println("请输入出生月份:");
int m=sc.nextInt();
System.out.println("请输入出生日份:");
int d=sc.nextInt();
System.out.println("请输入当前年份:");
int y1=sc.nextInt();
System.out.println("请输入当前月份:");
int m1=sc.nextInt();
System.out.println("请输入当前日份:");
int d1=sc.nextInt();
Test1 sum=new Test1();
int a=sum.count(y, m,d,y1,m1,d1);
System.out.println(a);
}
效果