黑马程序员技术交流社区

标题: JAVA EE点招题关于日期类 [打印本页]

作者: 花陌相惜    时间: 2016-8-1 22:16
标题: JAVA EE点招题关于日期类
public class Demo03 {

         public static void main(String[] args) throws Exception {
                /* 1.分析以下需求,并用代码实现:
                        (1)通过键盘录入日期字符串,格式(2015-10-20)
                        (2)输出该日期是星期几及这一年的第几天
                        (3)如输入:2015-10-20,输出"2015年-10月-20日 是 星期二,是  2015年的第 293 天"*/
                 
                 Scanner sc = new Scanner(System.in);
                 System.out.println("兄弟,请输入日期,格式(2015-10-20)");
                 String str = sc.nextLine();
                 readDate(str);
        }

        private static void readDate(String str) throws Exception {
                // Date 精确的时间   Calendar -->是星期几,一年中的第几天
            // sdf.format(Date date) --->String    sdf.parse(String str)  --->Date
           SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");  // 试试小写
           Date needDate = sdf.parse(str);   
           //需要转化的格式
           SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年-MM月-dd日");
           //转化过后的格式
           String format = sdf2.format(needDate);
           Calendar c = Calendar.getInstance();   //获得日历类实例
           //告诉Java 我们要操作的是哪一天
           c.setTime(needDate);
           int week = c.get(Calendar.DAY_OF_WEEK);  // --->外国人 1- 7  1 是星期日   7是星期六
           int day = c.get(Calendar.DAY_OF_YEAR);   // 一年中的第几天
           int year = c.get(Calendar.YEAR);
           // 通过Calendar 获得的星期转化我们真正需要的日期
         
          // 如输入:2015-10-20,输出"2015年-10月-20日 是 星期二,是  2015年的第 293 天"*/
           System.out.println(format +"是"+ readWeek(week)+ ",是"+year+"年的第"+day+"天" );
          
        }
        //外国认为第一天是星期天,中国认为第一天就是星期一
        private static String readWeek(int week) {
                //用空来代表第一个, 因为星期是1-7
                String [] strArr = {  "","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
                return strArr[week];
        }
}


作者: lovebaby    时间: 2016-8-1 22:16
不错,不错
作者: 骚动的石头    时间: 2016-8-1 22:41
还考这个啊
作者: 花陌相惜    时间: 2016-8-1 22:43
骚动的石头 发表于 2016-8-1 22:41
还考这个啊

老师说这是以前的点招题  所以你懂的
作者: GavinZ    时间: 2016-8-2 00:03
小伙子头像不错
作者: 18072727834    时间: 2016-8-3 20:17
good job!  66666666
作者: zl8899795    时间: 2016-8-23 00:11
这个比较赞
作者: w1204808093    时间: 2016-9-29 19:36
本帖最后由 w1204808093 于 2016-9-29 19:40 编辑

package com.heima.test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class test7 {

        /**
         * 1.分析以下需求,并用代码实现:
        (1)通过键盘录入日期字符串,格式(2015-10-20)
        (2)输出该日期是星期几及这一年的第几天
        (3)如输入:2015-10-20,输出"2015年-10月-20日 是 星期二,是  2015年的第 293 天"
         * @throws Exception
         */
        public static void main(String[] args) throws Exception {
                // TODO Auto-generated method stub
                Scanner sc=new Scanner(System.in);
                System.out.println("请输入日期字符串,格式(2015-10-20)");
                String line=sc.nextLine();
                String[] split = line.split("-");
                int year=Integer.parseInt(split[0]);
                int month=Integer.parseInt(split[1]);
                int day=Integer.parseInt(split[2]);
                //创建Calendar对象
                Calendar c=Calendar.getInstance();
                c.set(year, month-1, day);
                System.out.println(c.get(Calendar.YEAR) + "年" + (c.get(Calendar.MONTH)+1)
                                + "月" + c.get(Calendar.DAY_OF_MONTH) + "日是 " + getWeek(c.get(Calendar.DAY_OF_WEEK))+",是"+
                                c.get(Calendar.YEAR)+"年的第"+c.get(Calendar.DAY_OF_YEAR)+"天");
           
        }
        public static String getWeek(int week){
                String[] arr={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
                return arr[week];
               
        }
        
}


作者: w1204808093    时间: 2016-9-29 19:38
package com.heima.test;  import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner;  public class test7 {          /**          * 1.分析以下需求,并用代码实现:         (1)通过键盘录入日期字符串,格式(2015-10-20)         (2)输出该日期是星期几及这一年的第几天         (3)如输入:2015-10-20,输出"2015年-10月-20日 是 星期二,是  2015年的第 293 天"          * @throws Exception           */         public static void main(String[] args) throws Exception {                 // TODO Auto-generated method stub                 Scanner sc=new Scanner(System.in);                 System.out.println("请输入日期字符串,格式(2015-10-20)");                 String line=sc.nextLine();                 String[] split = line.split("-");                 int year=Integer.parseInt(split[0]);                 int month=Integer.parseInt(split[1]);                 int day=Integer.parseInt(split[2]);                 //创建Calendar对象                 Calendar c=Calendar.getInstance();                 c.set(year, month-1, day);                 System.out.println(c.get(Calendar.YEAR) + "年" + (c.get(Calendar.MONTH)+1)                                  + "月" + c.get(Calendar.DAY_OF_MONTH) + "日是 " + getWeek(c.get(Calendar.DAY_OF_WEEK))+",是"+                                 c.get(Calendar.YEAR)+"年的第"+c.get(Calendar.DAY_OF_YEAR)+"天");                          }          public static String getWeek(int week){                 String[] arr={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};                 return arr[week];                          }          }
作者: LXD2016    时间: 2016-9-29 20:01
点招的题会不会很难啊

作者: 杨杰锋    时间: 2016-9-29 20:08
不错
作者: fiendGG    时间: 2016-9-29 22:00
完了,这玩意儿都忘了。。。。
作者: Jerry007    时间: 2016-9-29 22:09
现在还看不太懂
作者: 愿望变美    时间: 2016-9-30 23:25
赞,也是经典




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