java 新手for if switch的综合运用实例


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

效果
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值