A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,程序计算这一天是星期几,并且计算出是一年中的第几天。
自己编写的,希望有更简单的办法,写出这个我也费了好大劲。
package com.itheima;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;

public class Text9 {
        /**
         * 思考:   1,建立一个可以接受键盘录入的对象。
         *                 2,获取录入数据传递到date日期中或者获取date对象。
         *                 3,因为用到日期 所以先想到Date
         *                 4,因为用到日期格式所以想到DateFormat,
         * */
        public static void main(String[] args) {
                 getSysin();
               
        }
        public static void getSysin(){
                Scanner s = new Scanner(System.in);//Scanner 键盘录入
               
                System.out.println("请输入一个“yyyy-MM-dd”格式的日期:");
                String stu =s.next();//取出录入的值
                s.close();//关闭资源
                String[] strs = stu.split("-");       
                //用正则表达式取出需要的数据        ,存储到数组中。
               
                int[] arr = new int[3];
                for(int i = 0;i<strs.length;i++){
                        arr[i] = Integer.parseInt(strs[i]);
                }
               
                getDate(arr[0],arr[1]-1,arr[2]);//传递
        }
        public static void getDate(int year,int month,int date){
                GregorianCalendar gc = new GregorianCalendar();//这是Calendar子类对象
                gc.set(year, month, date);
                Date  d  = gc.getTime();//获取了Date对象

                SimpleDateFormat sdf = new SimpleDateFormat("E,D");//日期格式对象
                String s = sdf.format(d);
                System.out.println(s);
               
        }

}

11 个回复

正序浏览
楼上有一位大神啊
回复 使用道具 举报
黑马94那么拽 发表于 2015-8-30 15:02
不谢,应该能看懂吧?我感觉这个简单些

非常感谢
回复 使用道具 举报
不谢,应该能看懂吧?我感觉这个简单些
  1. package com.itheima.day11;

  2. import java.text.DateFormat;
  3. import java.text.ParseException;
  4. import java.util.Calendar;
  5. import java.util.Date;
  6. import java.util.Scanner;

  7. public class CalendarDemo {

  8.         /**
  9.          * @param args
  10.          * @throws ParseException
  11.          *
  12.          */
  13.         public static void main(String[] args) throws ParseException {
  14.                 System.out.println("输入日期,格式是,例如:2013-12-3");
  15.                 Scanner sc = new Scanner(System.in);
  16.                
  17.                 String str_date = sc.nextLine();
  18.                
  19.                 showDate(str_date);
  20.                 sc.close();

  21.         }

  22.         private static void showDate(String str_date) throws ParseException {
  23.                
  24.                 DateFormat dateFormat = DateFormat.getDateInstance();
  25.                 Date date = dateFormat.parse(str_date);
  26.                
  27.                 Calendar c = Calendar.getInstance();
  28.                
  29.                 c.setTime(date);
  30.                
  31.                 int day = c.get(Calendar.DAY_OF_YEAR);
  32.                
  33.                 int week = c.get(Calendar.DAY_OF_WEEK);
  34.                
  35.                 System.out.println(str_date+",在这一天是"+getWeek(week)+",是这一年中的第"+day+"天");
  36.         }

  37.         private static String getWeek(int week) {
  38.                 String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六",};
  39.                 return weeks[week];
  40.         }

  41. }
复制代码


回复 使用道具 举报
bucuo ,,,都忘记了
回复 使用道具 举报
boboyuwu 发表于 2015-8-29 20:30
入学题目会考这种?

2楼说了口误,是基础测试
回复 使用道具 举报
我相信水滴石穿 发表于 2015-8-29 17:23
在家里没网,自己做的,我知道时间日期在date那,我就查相关的子类

入学题目会考这种?
回复 使用道具 举报
boboyuwu 发表于 2015-8-29 17:03
还不错 获取时间的api是不是网上搜的

在家里没网,自己做的,我知道时间日期在date那,我就查相关的子类
回复 使用道具 举报
写的很好啊 楼主妥妥进
回复 使用道具 举报
还不错 获取时间的api是不是网上搜的  
回复 使用道具 举报
很抱歉       ,我马上要入学测试了如果有那方面的题如果可以的话也可以告诉我,先感谢大家了。
回复 使用道具 举报
口误了,是基础测试
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马