获取当前时间的后一天开始时间的时间戳以及一个关于日历类的一个编程问题
2020-07-21 04:13
1121 查看
1.获取当前时间的后一天 的开始时间
这里需要用到的是常用类库中DateFormat知识点以及Calendar知识点。
首先需要获取当前时间的时间戳,代码如下:
[code]long time1 = System.currentTimeMillis();
通过DateFormat格式化:
[code]SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
将时间戳转换为格式化时间并且转换为字符串:
[code]String d1 = df.format(new Date(time1));
接下来需要用到Calendar设置时间,需要将当前时间的天数加一,将当前时间的小时,分钟,秒,毫秒设置为0,那么第二天开始的时间就已经设置好了
[code]Calendar now = Calendar.getInstance(); now.add(Calendar.DATE,+1); now.set(Calendar.HOUR_OF_DAY,0); now.set(Calendar.MINUTE,0); now.set(Calendar.SECOND,0); now.set(Calendar.MILLISECOND,0); String nextday = df.format(now.getTime());//将设置好的当前时间格式化 long time2 = now.getTimeInMillis();//当前时间转换为时间戳
看一下输出的结果
2.
某林业工人孙工,作息规律为上三天班,休息一天,经常不确定休息日是否是周末。为此,请你开发一个程序,当孙工 输入年以及月,以日历方式显示对应月份的休息日,用中括号进行标记(可以查看以前的休息情况和将来的休息情 况)。同时,统计出本月有几天休息,轮到周末休息有几天 直接上源代码,有一定的注释:[code]import java.util.Calendar; import java.util.Date; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Scanner; import java.text.ParseException; public class lianxi2 { public static void main(String[] args) throws ParseException { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); System.out.println("请输入年:"); int year = sc.nextInt(); System.out.println("请输入月: "); int month = sc.nextInt(); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); Date startData = df.parse("2020-02-01");//设置起始时间 cal.set(Calendar.YEAR, year);//将年,月设置为用户输入的时间 cal.set(Calendar.MONTH, month-1); cal.set(Calendar.DAY_OF_MONTH, 1);//设置当前月数的第一天 int weekStart = cal.get(Calendar.DAY_OF_WEEK);//获得每周开始的时间 System.out.println("日\t一\t二\t三\t四\t五\t六"); for (int i=1;i<weekStart;i++){ System.out.printf("%-8s","");//在变量右边缩进8个字符 } int countRelax = 0; int countWeekend = 0; int maxDate = cal.getActualMaximum(Calendar.DATE);//让maxDate获取本月的最大天数 for (int i=1;i<= maxDate;i++){ cal.set(Calendar.DAY_OF_MONTH, i);//设置每月当天的天数, Date temp = cal.getTime();//获取用户输入的年,月 int gap = getDifferentDay(startData, temp);//获得本月的总天数。 if (gap%4==1){//上三天休息一天,每循环一次休息天数+1 System.out.printf("%-8s","["+cal.get(Calendar.DAY_OF_MONTH)+"]"); countRelax++; if (cal.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY||cal.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){ countWeekend++;//判定休息天数是否在周末内,如果是周末天数+1 } }else { System.out.printf("%-8s", cal.get(Calendar.DAY_OF_MONTH)); } if(cal.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY){ System.out.println(); } cal.add(Calendar.DAY_OF_MONTH,1); } System.out.println("本月休息的天数有:"+countRelax); System.out.println("本月轮到周末休息的天数有:"+countWeekend); } private static int getDifferentDay(Date from, Date to){//该方法用于获得本月的总天数 long fromTime = from.getTime(); long toTime = to.getTime(); int days = (int) ((toTime - fromTime) / (1000 * 60 * 60 * 24)); return days; } }
相关文章推荐
- java获取本月开始时间和结束时间、上个月第一天和最后一天的时间以及当前日期往前推一周、一个月
- java获取本月开始时间和结束时间、上个月第一天和最后一天的时间以及当前日期往前推一周、一个月
- PHP 获取当前时间以及解决PHP通过date()函数取得时间错误问题
- 一个关于js代码如何获取服务器时间问题
- 解决一个mysql关于按文章以及评论的最早时间的排序问题
- Linux编程之《只运行一个实例》以及动态获取当前程序名称
- 关于js 获取本地当前时间问题
- 关于FreeMarker获取一个对象中另一个对象出现的问题以及解决方法
- 关于获取当前时间有时差的问题
- 一个小的知识点关于java获取系统时间的问题
- 关于获取当前时间出现1970年问题的解决
- Clander的用法。如何取得当前时间一个月后/前的时间。如何取得某个月的最后一天。如何取得今年的第一个周一。五月的第二个星期日。如何取得今年的第一周(注意国外的日历和国内可能不一样,如何设置一周开始
- thinkphp-关于获取当前时间的问题,模板引擎为smarty
- 关于table 点击行获取当前行的某一个列元素
- Java网络编程基础 1 建立一个提供当前时间字符串的ServerSocket
- 关于javascript获取当前对象的问题
- Flex 获取当前时间和获取当前时间减去一天的时间并且格式化为年月日时分秒的形式
- JS代码获取当前日期时支持IE,不兼容FF和chrome,解决这个问题,我们需要把获取时间的getYear()函数换成getFullYear()
- 关于怎么获取系统当天的开始时间和结束时间
- 关于asp获取当前文件名的问题