时间类练习

    技术2022-07-10  104

    练习1

    /*

    电子表功能:程序启动后,每秒向控制台输出当前系统时间,格式:10:35:33

    */

    package SE01.n8dateFomat; import java.text.SimpleDateFormat; import java.util.Date; public class Demo02Test1 { /* * 电子表功能: * 程序启动后,每秒向控制台输出当前系统时间,格式:10:35:33 * */ public static void main(String[] args) { SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss");//初始化时间格式 while(true) { Date date =new Date(); String line =sdf.format(date);//格式时间 System.out.println(line);//while死循环,每一秒输出一次格式化后的时间 try { Thread.sleep(1000);//线程休眠1秒, } catch (InterruptedException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } } }

    练习2

    /*

    用户输入自己的生日,格式:1996-04-03然后进过程序计算,输出到今天为止一共活了多少天?、再输出其出生10000天的纪念日是哪天 */ package SE01.n8dateFomat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner; public class Demo04Test2 { /* * 用户输入自己的生日,格式:1996-04-03 * 然后进过程序计算,输出到今天为止一共活了多少天?、 * 再输出其出生10000天的纪念日是哪天 */ public static void main(String[] args) { Scanner sc =new Scanner(System.in); System.out.println("输入自己的生日,格式:1996-04-03"); String birthday=sc.next(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); Date date1=new Date(); Date date2=new Date(); try { date2=sdf.parse(birthday); } catch (ParseException e) { e.printStackTrace(); } long born = date2.getTime(); long today= date1.getTime(); long time = today-born;//当前毫秒数减去出生毫秒数 System.out.println(born); double day=time/1000/60/60/24;//把毫秒转成天数 System.out.println(day);//已经活了多少天 double niceday=10000-day;//距离10000天还剩多少天 Calendar calendar =Calendar.getInstance(); calendar.add(Calendar.DAY_OF_MONTH, (int) niceday); System.out.println(calendar.getTime()); } }

    练习3

    /*

    计算促销日期:要求:程序启动后,要求用户输入某商品的生产日期格式:yyyy-MM-dd再输入该商品的保质期天数然后经过程序计算输出该商品开始促销的日期促销规则:商品过期日前一周的周三。 */ package SE01.n8dateFomat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner; public class Demo04Test3 { /* * 计算促销日期: * 要求:程序启动后,要求用户输入某商品的生产日期 * 格式:yyyy-MM-dd * 再输入该商品的保质期天数 * 然后经过程序计算输出该商品开始促销的日期 * 促销规则:商品过期日前一周的周三。 */ public static void main(String[] args) { Scanner sc =new Scanner(System.in); System.out.println("用户输入某商品的生产日期,格式:yyyy-MM-dd"); String begin=sc.next();//获取生产日期 System.out.println("该商品的保质期天数"); int keep=sc.nextInt();//获取保质期 Date begindate=new Date(); SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");//初始化时间格式 try { begindate=sdf.parse(begin);//获取格式化生产日期 } catch (ParseException e) { e.printStackTrace(); } Calendar begindateCalendar=Calendar.getInstance(); begindateCalendar.setTime(begindate);//把date类赋值给Calendar begindateCalendar.add(Calendar.DAY_OF_YEAR, keep);//在生产日期基础上加上保质期 begindateCalendar.add(Calendar.WEEK_OF_MONTH, -1);//回到保质期前的一周 int week=begindateCalendar.get(Calendar.DAY_OF_WEEK);//获取保质期上一周的星期 switch(week) {//用switch进行设置上周三 case 1://日历中周日为一周的第一天(距离周三有三天),所以要想在周三就要+3 begindateCalendar.add(Calendar.DAY_OF_YEAR, 3); break; case 2://同上 begindateCalendar.add(Calendar.DAY_OF_YEAR, 2); break; case 3: begindateCalendar.add(Calendar.DAY_OF_YEAR, 1); break; case 4: begindateCalendar.add(Calendar.DAY_OF_YEAR, 0); break; case 5: begindateCalendar.add(Calendar.DAY_OF_YEAR, -1); break; case 6: begindateCalendar.add(Calendar.DAY_OF_YEAR, -2); break; case 7: begindateCalendar.add(Calendar.DAY_OF_YEAR, -3); break; default: break; } int month=begindateCalendar.get(Calendar.MONTH);//具体月份赋值给month int day=begindateCalendar.get(Calendar.DATE);//具体日期赋值给day System.out.print("促销时间为"+(month+1)+"月"+day+"日"); } }
    Processed: 0.015, SQL: 9