黑马程序员技术交流社区

标题: 我的入学测试中的一题 [打印本页]

作者: 我相信水滴石穿    时间: 2015-8-29 16:20
标题: 我的入学测试中的一题
编写程序,该程序启动后用户可以按“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);
               
        }

}


作者: 我相信水滴石穿    时间: 2015-8-29 16:22
口误了,是基础测试
作者: 我相信水滴石穿    时间: 2015-8-29 16:23
很抱歉       ,我马上要入学测试了如果有那方面的题如果可以的话也可以告诉我,先感谢大家了。
作者: boboyuwu    时间: 2015-8-29 17:03
还不错 获取时间的api是不是网上搜的  
作者: sunsteam    时间: 2015-8-29 17:08
写的很好啊 楼主妥妥进
作者: 我相信水滴石穿    时间: 2015-8-29 17:23
boboyuwu 发表于 2015-8-29 17:03
还不错 获取时间的api是不是网上搜的

在家里没网,自己做的,我知道时间日期在date那,我就查相关的子类
作者: boboyuwu    时间: 2015-8-29 20:30
我相信水滴石穿 发表于 2015-8-29 17:23
在家里没网,自己做的,我知道时间日期在date那,我就查相关的子类

入学题目会考这种?

作者: 我相信水滴石穿    时间: 2015-8-30 10:27
boboyuwu 发表于 2015-8-29 20:30
入学题目会考这种?

2楼说了口误,是基础测试
作者: fantianfei    时间: 2015-8-30 10:30
bucuo ,,,都忘记了
作者: 黑马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. }
复制代码



作者: 我相信水滴石穿    时间: 2015-8-30 15:10
黑马94那么拽 发表于 2015-8-30 15:02
不谢,应该能看懂吧?我感觉这个简单些

非常感谢
作者: heima_cy    时间: 2015-8-30 16:21
楼上有一位大神啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2