我会告诉你,我的基础测试就有这题吗。。你的思路错了。。不多说,上代码。
- package com.itheima;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.GregorianCalendar;
- /**
- *第九题: 编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,程序计算这一天是星期几,并且计算出是一年中的第几天。
- * @author wangyang
- *
- *
- *思路:
- *1,获取键盘输入。存入字符串中。
- *2,因为要用到时间日期格式,所以找到DateFormat这个类,用它的子类设置日期格式。
- *3,调用parse方法。把字符串解析为一个Date对象。
- *4,因为要计算日期,所以找到Calendar这个类,调用setTime(date)方法,设置日期。
- *5,通过Calendar的get方法。获取所要的数据。
- */
- public class Test9 {
- public static void main(String[] args) throws ParseException, IOException {
-
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- String data = br.readLine();//获取输入的日期。
-
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//给日期格式化。
- Date date = sdf.parse(data);//把字符串转成日期。抛出:ParseException - 如果无法解析指定字符串的开始处。
-
- GregorianCalendar c = new GregorianCalendar();
- c.setTime(date);//设置日期。
-
- int week = c.get(Calendar.DAY_OF_WEEK);//获取星期中的第几天。注意:外国人星期日是第一天。
- int day = c.get(Calendar.DAY_OF_YEAR);//获取一年中第几天
-
- String[] stringweek = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};//这样打印比较好。
- System.out.print(data+" "+stringweek[week]);
- System.out.println(" 一年中的第"+day+"天");
-
- br.close();//关流。
- }
- }
复制代码 |