用java编一个程序能通过用户输入的生日判断用户的星座。请大神们给点提示或者思路吧。规定不能自定义方法
7个回答
展开全部
既然不允许用其他的方式,那就直接上代码吧....
public static void main(String[] args) {
int point = -1;
String[] str = {"白羊","金牛","双子","巨蟹","狮子","处女","天平","天蝎","射手","摩羯","水瓶","双鱼"};
SimpleDateFormat sdf = new SimpleDateFormat("MM-dd");
System.out.println("请输入一个日期,格式为MM-dd,例如:8-9");
Scanner scan = new Scanner(System.in);
Date d = null;
while (true) {
try {
String input = scan.next();
d = sdf.parse(input);
break;
} catch (Exception ex) {
System.out.println("请输入正确的日期格式,例如:08-09");
}
}
//格式化日期,将日期转成**.**的格式,比如1月1日转成1.01
Double date = Double.parseDouble((d.getMonth() + 1)
+ "." + String.format("%02d", d.getDate()));
if (3.21 <= date && 4.19 >= date) {
point = 0;
} else if (4.20 <= date && 5.20 >= date) {
point = 1;
} else if (5.21 <= date && 6.21 >= date) {
point = 2;
} else if (6.22 <= date && 7.22 >= date) {
point = 3;
} else if (7.23 <= date && 8.22 >= date) {
point = 4;
} else if (8.23 <= date && 9.22 >= date) {
point = 5;
} else if (9.23 <= date && 10.23 >= date) {
point = 6;
} else if (10.24 <= date && 11.22 >= date) {
point = 7;
} else if (11.23 <= date && 12.21 >= date) {
point = 8;
} else if (12.22 <= date && 12.31 >= date) {
point = 9;
} else if (1.01 <= date && 1.19 >= date) {
point = 9;
} else if (1.20 <= date && 2.18 >= date) {
point = 10;
} else if (2.19 <= date && 3.20 >= date) {
point = 11;
}
if(point == -1) {
System.out.println("你真的是地球人么....");return;
}
System.out.println(String.format(
"找到啦!o^ ^o,你的星座是%s.", str[point]));
展开全部
先确定输入生日的格式:比如为 “1月10日”
然后截取字符串,取出月份和日,再根据日月判断星座。
然后截取字符串,取出月份和日,再根据日月判断星座。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将输入的日期格式化成int比如1992-10-12 格式化成19921012 然后直接用switch判断 case里面的日期区间就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那就直接用switch开关语句判断呗,你所说的不能自定义方法我不是太理解,你直接在程序中判断是几月,然后回答对应的星座不就好了吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-01-10
展开全部
不能自定义方法这种奇葩规定。。就是要让你一个main一直写么。。那还学什么java..答案其他楼已经给了,我就喷一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询