我是靠谱客的博主 怕孤单含羞草,这篇文章主要介绍无Bug,Java语言编写根据出生日期判断属相和星座,现在分享给大家,希望可以做个参考。

根据出生日期判断属相和星座,Java语言编写,无bug

习题代码

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
package com.newer.oop; import java.util.InputMismatchException; import java.util.Scanner; /** * author: HCQ * date: 2018/7/26 * see: 1. 根据生日判断属相和星座 2. 年份分为闰年和平年 3. 判断月份和日期是否输入正确 */ public class Birthday { static int year; private static Scanner sc; static boolean dayPanDuan; // 判断日期输入是否正确,月份天数正确为true,错误为false /* 根据年份判断属相 */ public static String ShuXiang(int year) { String sx = null; switch (year % 12) { case 4: sx = "鼠"; break; case 5: sx = "牛"; break; case 6: sx = "虎"; break; case 7: sx = "兔"; break; case 8: sx = "龙"; break; case 9: sx = "蛇"; break; case 10: sx = "马"; break; case 11: sx = "羊"; break; case 0: sx = "猴"; break; case 1: sx = "鸡"; break; case 2: sx = "狗"; break; case 3: sx = "猪"; break; } return sx; } /* 根据月份和日期判断星座 */ public static String XingZuo(int year, int month, int day) { String xz = null; if ((month == 3 && day >= 21 && day <= 31) || (month == 4 && day >= 1 && day <= 19)) { xz = "白羊"; } if ((month == 4 && day >= 20 && day <= 30) || (month == 5 && day >= 1 && day <= 20)) { xz = "金牛"; } if ((month == 5 && day >= 21 && day <= 31) || (month == 6 && day >= 1 && day <= 21)) { xz = "双子"; } if ((month == 6 && day >= 22 && day <= 30) || (month == 7 && day >= 1 && day <= 22)) { xz = "巨蟹"; } if ((month == 7 && day >= 23 && day <= 31) || (month == 8 && day >= 1 && day <= 22)) { xz = "狮子"; } if ((month == 8 && day >= 23 && day <= 31) || (month == 9 && day >= 1 && day <= 22)) { xz = "处女"; } if ((month == 9 && day >= 23 && day <= 30) || (month == 10 && day >= 1 && day <= 23)) { xz = "天秤"; } if ((month == 10 && day >= 24 && day <= 31) || (month == 11 && day >= 1 && day <= 22)) { xz = "天蝎"; } if ((month == 11 && day >= 23 && day <= 30) || (month == 12 && day >= 1 && day <= 21)) { xz = "射手"; } if ((month == 12 && day >= 22 && day <= 31) || (month == 1 && day >= 1 && day <= 19)) { xz = "摩羯"; } if ((month == 1 && day >= 20 && day <= 31) || (month == 2 && day >= 1 && day <= 18)) { xz = "水瓶"; } if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) { // 闰年2月29天 if ((month == 2 && day >= 19 && day <= 29) || (month == 3 && day >= 1 && day <= 20)) { xz = "双鱼"; } } else { // 平年2月28天 if ((month == 2 && day >= 19 && day <= 28) || (month == 3 && day >= 1 && day <= 20)) { xz = "双鱼"; } } return xz; } /* 判断日期是否输入正确 */ public static void PanDuanday(int year, int month, int day) { switch (month) { case 1: if (day >= 1 && day <= 31) { // 日期在该月份中,dayPanDuan为ture dayPanDuan = true; break; } else { // 日期在该月份中,dayPanDuan为false dayPanDuan = false; break; } case 2: if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) { if (day >= 1 && day <= 29) { dayPanDuan = true; break; } else { dayPanDuan = false; break; } } else { if (day >= 1 && day <= 28) { dayPanDuan = true; break; } else { dayPanDuan = false; break; } } case 3: if (day >= 1 && day <= 31) { dayPanDuan = true; break; } else { dayPanDuan = false; break; } case 4: if (day >= 1 && day <= 30) { dayPanDuan = true; break; } else { dayPanDuan = false; break; } case 5: if (day >= 1 && day <= 31) { dayPanDuan = true; break; } else { dayPanDuan = false; break; } case 6: if (day >= 1 && day <= 30) { dayPanDuan = true; break; } else { dayPanDuan = false; break; } case 7: if (day >= 1 && day <= 31) { dayPanDuan = true; break; } else { dayPanDuan = false; break; } case 8: if (day >= 1 && day <= 31) { dayPanDuan = true; break; } else { dayPanDuan = false; break; } case 9: if (day >= 1 && day <= 30) { dayPanDuan = true; break; } else { dayPanDuan = false; break; } case 10: if (day >= 1 && day <= 31) { dayPanDuan = true; break; } else { dayPanDuan = false; break; } case 11: if (day >= 1 && day <= 30) { dayPanDuan = true; break; } else { dayPanDuan = false; break; } case 12: if (day >= 1 && day <= 31) { dayPanDuan = true; break; } else { dayPanDuan = false; break; } } } /* main方法 */ public static void main(String[] args) { sc = new Scanner(System.in); System.out.println("请输入"); System.out.print("年: "); try { year = sc.nextInt(); // 输入年份 System.out.print("月: "); int month = sc.nextInt(); // 输入月份 if (month >= 1 && month <= 12) { // 判断月份是否输入正确,是否在1-12中 System.out.print("日: "); int day = sc.nextInt(); // 输入日期 PanDuanday(year, month, day); // 调用判断日期的方法 if (dayPanDuan == true) { // 日期在该月份中,为ture System.out.println(year + "/" + month + "/" + day + " " + "属相: " + ShuXiang(year) + ", " + "星座: " + XingZuo(year, month, day)); // 输出打印年月日,属相和星座 } else { // 日期不在该月份中,为false System.out.println("输入日期有误。"); } } else { // 月份不在1-12中 System.out.println("输入月份有误。"); } } catch (InputMismatchException e) { System.out.println("输入非法。"); } catch(Exception e) { System.out.println("其他错误。"); e.printStackTrace(); } finally { System.out.println("程序结束!"); System.exit(0); //退出系统 } } }

我的总结

  1. 该题主要运用了switch语句,if else语句, try catch finally语句
  2. 此题解决了年份,月份和日期输入非法的BUG
    a. 年份,月份,日期输入非数字会报“输入非法。”的提示
    b. 月份只能在1-12中,否则报“输入月份有误。”的提示
    c. 日期只能是该月份的天数
    1、3、5、7、8、10、12月31天
    4、6、9、11 月30天
    2月平年28天,闰年29天
    如果不在这些范围内,会提示“输入日期有误。”

答案仅供参考,小萌新初次写博客,大神勿喷。

2018/8/3

最后

以上就是怕孤单含羞草最近收集整理的关于无Bug,Java语言编写根据出生日期判断属相和星座的全部内容,更多相关无Bug内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部