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]; } } |