calendar类运用:DAY_OF_YEAR为其静态字段表示一年中的第几天:DAY_OF_WEEK为其静态字段表示星期;0为星期日1为星期一以此类推。。。- package com.itheima;
- import java.util.*;
- import java.io.*;
- public class Test9 {
- /**、 编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,
- * 程序计算这一天是星期几,并且计算出是一年中的第几天。
- * @param args
- *
- * 思路:
- * 1键盘录入;
- * 2通过Calendar类,建立实例对象,并设置其代表的日期为输入的日期
- * 3通过此对象的方法,获取星期,及这天为一年的第几天;
- * @throws IOException
- */
- public static void main(String[] args) throws IOException {
- // TODO Auto-generated method stub
- BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));
- String day=null;
-
- //日期正则表达式
- String reg="\\d{4}-((0\\d)|\\d|(1[012]))-(\\d|([012]\\d)|(3[01]))";
- while((day=bufr.readLine())!=null){
- if(!day.matches(reg)){
- bufr.close();
- System.out.println("非yyyy-mm-dd格式,程序退出");
- return;
- }
- method(day);
- }
- }
-
- //输入的字符串通过检查后的具体对象建立及取值
- public static void method(String day){
- String[] arr=day.split("-");
-
- //取出字符串对应的年月日的int值;
- int[] ts=new int[3];
- for(int i=0;i<3;i++){
- ts[i]=Integer.parseInt(arr[i]);
- }
- //获取对象实例
- Calendar cal=Calendar.getInstance();
- //设置对象实例代表的日期为键盘输入的日期
- cal.set(ts[0],ts[1]-1,ts[2]);
- //获取星期值
- String week=getWeek(cal.get(cal.DAY_OF_WEEK));
- //获取当前为一年中的第几天
- int num=cal.get(cal.DAY_OF_YEAR);
-
- System.out.println(day+"这一天是"+week+",是一年中的第"+num+"天!");
- }
-
- //通过数组拿对应int值代表的具体星期的中文形式;
- public static String getWeek(int num){
-
- String[] arr={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
- return arr[num-1];
- }
- }
复制代码 |