话不多说,下面来直接看示例代码
具体代码:
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
|
DayOfWeek4Birthday.java
package com.gua;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.io.*;
import static java.lang.System.out;
/**
* Created by 2gua on 2014/9/27.
* DayOfWeek4Birthday:看看你查询的具体日子是星期几,
* 比如,查询谁谁的“生日对应是星期几”。
*/
public class DayOfWeek4Birthday {
private String[] date; //保存输入数据:年数、几月、几号。
//计算输入的日期数据对应的星期几。
private void caculateData() {
GregorianCalendar gc = new GregorianCalendar();
final char [] day_of_week = { '日' , '一' , '二' , '三' , '四' , '五' , '六' };
int year = gc.get(Calendar.YEAR); //从当前年算起。
char week;
for ( int i = year; i<= year + Integer.valueOf(date[ 0 ]) - 1 ; i++) {
gc.set(i, Integer.valueOf(date[ 1 ]) - 1 , Integer.valueOf(date[ 2 ]));
week = day_of_week[gc.get(Calendar.DAY_OF_WEEK) - 1 ];
out.println(i + "年" + date[ 1 ] + "月" + date[ 2 ] + "号是星期" + week + "。" );
}
}
//输入日期数据。
private void inputData() {
InputStreamReader is = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(is);
try {
out.print( "请输入年份范围和日期,格式:年数 几月 几号(5 9 15),回车结束:" );
String in = br.readLine();
date = in.split( " " );
out.println( "输入结果:" + date[ 0 ] + "个年数," + date[ 1 ] + "月" + date[ 2 ] + "号。" );
}
catch (Exception e) {
out.println( "啊哦,运行出错咯-_-。sorry!" );
} finally {
try {
br.close();
is.close();
} catch (IOException e) {
out.println( "IO出错咯-_-。sorry!" );
}
}
}
public static void main(String[] args) {
DayOfWeek4Birthday dayOfWeek4Birthday = new DayOfWeek4Birthday();
dayOfWeek4Birthday.inputData();
dayOfWeek4Birthday.caculateData();
}
}
|
运行,比如想看从今年算起5年内,每年的9月15号是星期几。
结果如下所示:
1
2
3
4
5
6
7
8
9
|
请输入年份范围和日期,格式:年数 几月 几号( 5 9 15 ),回车结束: 5 9 15
输入结果: 5 个年数, 9 月 15 号。
2014 年 9 月 15 号是星期一。
2015 年 9 月 15 号是星期二。
2016 年 9 月 15 号是星期四。
2017 年 9 月 15 号是星期五。
2018 年 9 月 15 号是星期六。
Process finished with exit code 0
|
记得用完流要关闭。
以上是JDK 6的做法,在JDK 7及JDK 8中可以使用automatic resource management(ARM)
新特性,重构inputData()
方法:
1
2
3
4
5
6
7
8
9
10
11
12
|
//输入日期数据。
private void inputData() {
try (BufferedReader br = new BufferedReader( new InputStreamReader(System.in))) {
out.print( "请输入年份范围和日期,格式:年数 几月 几号(5 9 15),回车结束:" );
String in = br.readLine();
date = in.split( " " );
out.println( "输入结果:" + date[ 0 ] + "个年数," + date[ 1 ] + "月" + date[ 2 ] + "号。" );
}
catch (Exception e) {
out.println( "啊哦,运行出错咯-_-。sorry!" );
}
}
|
当然,记得要把模块语言等级相应设置为JDK 7或JDK 8,JDK 6及以下是不会通过的。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用Java能有所帮助,如果有疑问大家可以留言交流。