話不多說(shuō),下面來(lái)直接看示例代碼
具體代碼:
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:看看你查詢的具體日子是星期幾, * 比如,查詢誰(shuí)誰(shuí)的“生日對(duì)應(yīng)是星期幾”。 */ public class DayOfWeek4Birthday { private String[] date; //保存輸入數(shù)據(jù):年數(shù)、幾月、幾號(hào)。 //計(jì)算輸入的日期數(shù)據(jù)對(duì)應(yīng)的星期幾。 private void caculateData() { GregorianCalendar gc = new GregorianCalendar(); final char [] day_of_week = { '日' , '一' , '二' , '三' , '四' , '五' , '六' }; int year = gc.get(Calendar.YEAR); //從當(dāng)前年算起。 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 ] + "號(hào)是星期" + week + "。" ); } } //輸入日期數(shù)據(jù)。 private void inputData() { InputStreamReader is = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(is); try { out.print( "請(qǐng)輸入年份范圍和日期,格式:年數(shù) 幾月 幾號(hào)(5 9 15),回車結(jié)束:" ); String in = br.readLine(); date = in.split( " " ); out.println( "輸入結(jié)果:" + date[ 0 ] + "個(gè)年數(shù)," + date[ 1 ] + "月" + date[ 2 ] + "號(hào)。" ); } catch (Exception e) { out.println( "啊哦,運(yùn)行出錯(cuò)咯-_-。sorry!" ); } finally { try { br.close(); is.close(); } catch (IOException e) { out.println( "IO出錯(cuò)咯-_-。sorry!" ); } } } public static void main(String[] args) { DayOfWeek4Birthday dayOfWeek4Birthday = new DayOfWeek4Birthday(); dayOfWeek4Birthday.inputData(); dayOfWeek4Birthday.caculateData(); } } |
運(yùn)行,比如想看從今年算起5年內(nèi),每年的9月15號(hào)是星期幾。
結(jié)果如下所示:
1
2
3
4
5
6
7
8
9
|
請(qǐng)輸入年份范圍和日期,格式:年數(shù) 幾月 幾號(hào)( 5 9 15 ),回車結(jié)束: 5 9 15 輸入結(jié)果: 5 個(gè)年數(shù), 9 月 15 號(hào)。 2014 年 9 月 15 號(hào)是星期一。 2015 年 9 月 15 號(hào)是星期二。 2016 年 9 月 15 號(hào)是星期四。 2017 年 9 月 15 號(hào)是星期五。 2018 年 9 月 15 號(hào)是星期六。 Process finished with exit code 0 |
記得用完流要關(guān)閉。
以上是JDK 6的做法,在JDK 7及JDK 8中可以使用automatic resource management(ARM)
新特性,重構(gòu)inputData()
方法:
1
2
3
4
5
6
7
8
9
10
11
12
|
//輸入日期數(shù)據(jù)。 private void inputData() { try (BufferedReader br = new BufferedReader( new InputStreamReader(System.in))) { out.print( "請(qǐng)輸入年份范圍和日期,格式:年數(shù) 幾月 幾號(hào)(5 9 15),回車結(jié)束:" ); String in = br.readLine(); date = in.split( " " ); out.println( "輸入結(jié)果:" + date[ 0 ] + "個(gè)年數(shù)," + date[ 1 ] + "月" + date[ 2 ] + "號(hào)。" ); } catch (Exception e) { out.println( "啊哦,運(yùn)行出錯(cuò)咯-_-。sorry!" ); } } |
當(dāng)然,記得要把模塊語(yǔ)言等級(jí)相應(yīng)設(shè)置為JDK 7或JDK 8,JDK 6及以下是不會(huì)通過(guò)的。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家學(xué)習(xí)或者使用Java能有所幫助,如果有疑問(wèn)大家可以留言交流。