Java小白入门200例51之根据出生日期计算星座

Posted 编程界明世隐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java小白入门200例51之根据出生日期计算星座相关的知识,希望对你有一定的参考价值。

作者简介

作者名:编程界明世隐
简介:CSDN博客专家,从事软件开发多年,精通Java、javascript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞!

引言

很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢?
其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大佬的路上一去不复返(切记要亲手练习哦)!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  50.Java判断闰年并打印月份对应的天数
►下一篇  52.实现淡旺季飞机票打折

星座划分

星座出生日期
水瓶0121~0219
双鱼0220~0320
白羊0321~0420
金牛0421~0521
双子0522~0621
巨蟹0622~0722
狮子0723~0823
处女0824~0923
天秤0924~1023
天蝎1024~1122
射手1123~1221
摩羯1222~0120

分析

输入一个 4 位数字,根据这个数字所处的范围进行判断,其中前两位是月份,后两位是日期。这里分别用 if else 语句和 switch 语句实现,以便更好的掌握 if else 和 switch 的区别和适用场景。

实现1

用 if else来实现

package demo.demo51;

import java.util.Scanner;

public class XingZuo {

	public static void main(String[] args) {
		//获取输入内容
		int monthday = getInput();
		//得到月份
		int month = monthday/100;
		//得到天
	    int day = monthday%100;
	    
	    //得到星座内容
	    String xingzuo = getXingZuo(month, day);
	    
	    System.out.println("星座是:"+xingzuo);
	}
	//得到输入
	private static int getInput() {
		int res=0;
		System.out.println("请输入初始日期(1月1日 则输入0101):");
		Scanner scanner = new Scanner(System.in);
		try {
			res = scanner.nextInt();
		} catch (Exception e) {
			System.out.println("你输入的格式错误,请重新输入!");
			//进行递归操作
			res = getInput();
		}
		return res;
	}
	
	private static String getXingZuo(int month,int day) {
		String xingzuo="";
		 if (month == 1) {
		        if (day < 21) {
		            xingzuo = "摩羯座";
		        } else {
		            xingzuo = "水瓶座";
		        }
		    } else if (month == 2) {
		        if (day < 20) {
		            xingzuo = "水瓶座";
		        } else {
		            xingzuo = "双鱼座";
		        }
		    } else if (month == 3) {
		        if (day < 21) {
		            xingzuo = "双鱼座";
		        } else {
		            xingzuo = "白羊座";
		        }
		    } else if (month == 4) {
		        if (day < 21) {
		            xingzuo = "白羊座";
		        } else {
		            xingzuo = "金牛座";
		        }
		    } else if (month == 5) {
		        if (day < 22) {
		            xingzuo = "金牛座";
		        } else {
		            xingzuo = "双子座";
		        }
		    } else if (month == 6) {
		        if (day < 22) {
		            xingzuo = "双子座";
		        } else {
		            xingzuo = "巨蟹座";
		        }
		    } else if (month == 7) {
		        if (day < 23) {
		            xingzuo = "巨蟹座";
		        } else {
		            xingzuo = "狮子座";
		        }
		    } else if (month == 8) {
		        if (day < 24) {
		            xingzuo = "狮子座";
		        } else {
		            xingzuo = "处女座";
		        }
		    } else if (month == 9) {
		        if (day < 24) {
		            xingzuo = "处女座";
		        } else {
		            xingzuo = "天秤座";
		        }
		    } else if (month == 10) {
		        if (day < 24) {
		            xingzuo = "天秤座";
		        } else {
		            xingzuo = "天蝎座";
		        }
		    } else if (month == 11) {
		        if (day < 23) {
		            xingzuo = "天蝎座";
		        } else {
		            xingzuo = "射手座";
		        }
		    } else if (month == 12) {
		        if (day < 22) {
		            xingzuo = "射手座";
		        } else {
		            xingzuo = "摩羯座";
		        }
		    }
		 
		 return xingzuo;
	}
}

运行结果:

请输入初始日期(1月1日 则输入0101):
0123
星座是:水瓶座

实现2

用switch case来处理

package demo.demo51;

import java.util.Scanner;

public class XingZuo2 {

	public static void main(String[] args) {
		// 获取输入内容
		int monthday = getInput();
		// 得到月份
		int month = monthday / 100;
		// 得到天
		int day = monthday % 100;

		// 得到星座内容
		String xingzuo = getXingZuo(month, day);

		System.out.println("星座是:" + xingzuo);
	}

	// 得到输入
	private static int getInput() {
		int res = 0;
		System.out.println("请输入初始日期(1月1日 则输入0101):");
		Scanner scanner = new Scanner(System.in);
		try {
			res = scanner.nextInt();
		} catch (Exception e) {
			System.out.println("你输入的格式错误,请重新输入!");
			// 进行递归操作
			res = getInput();
		}
		return res;
	}

	private static String getXingZuo(int month, int day) {
		String xingzuo = "";
		switch (month) {
		case 1:
			xingzuo = day < 21 ? "摩羯座" : "水瓶座";
			break;
		case 2:
			xingzuo = day < 20 ? "水瓶座" : "双鱼座";
			break;
		case 3:
			xingzuo = day < 21 ? "双鱼座" : "白羊座";
			break;
		case 4:
			xingzuo = day < 21 ? "白羊座" : "金牛座";
			break;
		case 5:
			xingzuo = day < 22 ? "金牛座" : "双子座";
			break;
		case 6:
			xingzuo = day < 22 ? "双子座" : "巨蟹座";
			break;
		case 7:
			xingzuo = day < 23 ? "巨蟹座" : "狮子座";
			break;
		case 8:
			xingzuo = day < 24 ? "狮子座" : "处女座";
			break;
		case 9:
			xingzuo = day < 24 ? "处女座" : "天秤座";
			break;
		case 10:
			xingzuo = day < 24 ? "天秤座" : "天蝎座";
			break;
		case 11:
			xingzuo = day < 23 ? "天蝎座" : "射手座";
			break;
		case 12:
			xingzuo = day < 22 ? "射手座" : "摩羯座";
			break;
		}
		return xingzuo;
	}
}

运行结果:

请输入初始日期(1月1日 则输入0101):
0128
星座是:水瓶座

小结

这节总结了“根据出生日期计算星座”,希望能对大家有所帮助,请各位小伙伴帮忙 【点赞】+【收藏】+ 【评论区打卡】, 如果有兴趣跟小明哥一起学习Java的,【关注一波】不迷路哦。

评论区打卡一波让我知道你,明哥会持续关注你的学习进度哦!

导航

✪ Java小白入门200例系列目录索引
◄上一篇  50.Java判断闰年并打印月份对应的天数
►下一篇  52.实现淡旺季飞机票打折

热门专栏推荐

1.Java小游戏系列(俄罗斯方块、飞机大战、植物大战僵尸等)
2.JavaWeb项目实战(图书管理、在线考试、宿舍管理系统等)
3.JavaScript精彩实例(飞机大战、扫雷、贪吃蛇、验证码等)
4.Java小白入门200例
5.从零学Java、趣学Java、以王者荣耀角度学Java

以上是关于Java小白入门200例51之根据出生日期计算星座的主要内容,如果未能解决你的问题,请参考以下文章

Java小白入门200例57之日期Date类详解

Java小白入门200例62之java中日期查询常用实例

Java小白入门200例61之java中Date日期类型的大小比较

Java小白入门200例23之阶乘计算

Java小白入门200例22之计算数字的幂

Java小白入门200例17之计算整数中的位数