黑马程序员技术交流社区

标题: 按格式输入一个日期,计算这一天是周几,是一年中的第... [打印本页]

作者: java8023    时间: 2015-6-6 22:15
标题: 按格式输入一个日期,计算这一天是周几,是一年中的第...
编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,
程序计算这一天是星期几,并且计算出是一年中的第几天
看别人写的程序,感觉不是很好,就自己写了个,大家给看看如何!!!!
思路:
1、用户输入数据
2、用使用simpDateFormate指定格式接收该时间的字符串转换成日期类
3、将接受的日期类使用calendar类的setTime(Date date )方法
4、再使用其get()方法获取相应的时间参数

  1. public class Demo {
  2. public static void main(String[] args) throws ParseException {
  3.   //创建键盘输入对象
  4.   Scanner sca=new Scanner(System.in);
  5.   System.out.println("请按照yyyy-MM-dd的格式输入要制定的日期");
  6.   String str=sca.next();//使用一个字符串接收输入的日期
  7.   SimpleDateFormat simp=new SimpleDateFormat("yyyy-MM-dd");//创建对象,指定日期格式
  8.   Date dat=simp.parse(str); //将字符串转换成日期对象
  9.   Calendar cal=Calendar.getInstance();//创建calendar对象
  10.   cal.setTime(dat);//设置时间
  11.   int year=cal.get(Calendar.YEAR);//提取年
  12.   System.out.println("这是"+year+"年");
  13.   int month1=cal.get(Calendar.MONTH);
  14.   System.out.println(month1);
  15.   int dayofWeek=cal.get(Calendar.DAY_OF_WEEK);
  16.   int dayofyear=cal.get(Calendar.DAY_OF_YEAR);
  17.   System.out.println("这是一年中的第"+dayofyear+"天");
  18.   System.out.println("这是一周的第"+dayofWeek+"天");
  19. }
  20. }
复制代码




作者: java8023    时间: 2015-6-7 23:02
有没有更好的的方法呢,大家好好商量一下
作者: pizhihui    时间: 2015-6-7 23:10
楼主可以看看Calendar类中的setTime()方法,那个也同样可以实现你的程序中的功能。
作者: 代码人生?!    时间: 2016-5-8 15:05
太吊了,最近的方法学太多,看了只有终于把作业学出来了
作者: Menger_    时间: 2016-9-13 22:58
我今天晚上刚刚写的,day14的作业。。。

public class Test_Calendar {

        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个日期字符串,如2015-10-20:");
                String date = sc.nextLine();
                String[] str = date.split("-");
                int year = Integer.parseInt(str[0]);
                int month = Integer.parseInt(str[1]);
                int day = Integer.parseInt(str[2]);
                Calendar c = Calendar.getInstance();
                c.set(year, month - 1, day);
                System.out.println(year + "年-" + month + "月-" + day + "日是"
                                + getWeek(c.get(Calendar.DAY_OF_WEEK)) + ",是" + year + "年的第"
                                + c.get(Calendar.DAY_OF_YEAR) + "天");

        }
       
        public static String getWeek(int week) {
                String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};       
                return arr[week];
        }

}




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