总结一下自己在Android开发中遇到的时间处理

来源:互联网 发布:淘宝卖家怎么设置折扣 编辑:程序博客网 时间:2024/06/17 07:09
    1. //获取当前时间 如果****-01-01不是周一从第一个周一开始计算
    2. //设置每周的第一天为周一
    3. cal.setFirstDayOfWeek(Calendar.MONDAY);
    4. //设置每周从周一开始
    5. cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
    6. //设置每周最少为7天
    7. cal.setMinimalDaysInFirstWeek(7);
    8. // 设置年度为指定的年
    9. cal.set(Calendar.YEAR, cal.get(cal.YEAR));
    10. //设置判断时间
    11. cal.setTime(new Date());
    12. //根据情况返回日期为当前第几个周
    13. return cal.get(Calendar.WEEK_OF_YEAR);

    1. //获取当前周的所有日期
    2. cal.set(Calendar.WEEK_OF_YEAR, week);
    3. while (cal.get(Calendar.DAY_OF_WEEK) != FIRST_DAY) {
    4. cal.add(Calendar.DATE, -1);
    5. }
    6. for (int i = 0; i < 7; i++) {
    7. list.add(cal.getTime().getTime());
    8. cal.add(Calendar.DATE, 1);
    9. }
    1. //区别第一种如果****-01-01不是周一的时候回从去年的最后一个周一开始计算
    2. SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
    3. Calendar cal = Calendar.getInstance();
    4. System.out.println(cal.get(Calendar.WEEK_OF_YEAR));
    5. cal.set(Calendar.WEEK_OF_YEAR, 52);
    6. while (cal.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) {
    7. cal.add(Calendar.DATE, -1);
    8. }
    9. for (int i = 0; i < 7; i++) {
    10. System.out.println(sdf.format(cal.getTime()));
    11. cal.add(Calendar.DATE, 1);
    12. }
    1. //计算某月的开始时间和结束时间
    2. Calendar cal = Calendar.getInstance();
    3. cal.set(Calendar.MONTH, 月份);
    4. cal.set(Calendar.DAY_OF_MONTH, 1);
    5. System.out.println(sdf.format(cal.getTime()));
    6. cal.add(Calendar.DAY_OF_MONTH, -1);
    7. Date lastDate = cal.getTime();
    8. cal.set(Calendar.DAY_OF_MONTH, 1);
    9. Date firstDate = cal.getTime();
    10. System.out.println(sdf.format(lastDate)+""+sdf.format(firstDate));
    1. //计算某月所有日期
    2. list.add(sdf.format(dBegin));
    3. Calendar calBegin = Calendar.getInstance();
    4. // 使用给定的 Date 设置此 Calendar 的时间
    5. calBegin.setTime(dBegin);
    6. Calendar calEnd = Calendar.getInstance();
    7. // 使用给定的 Date 设置此 Calendar 的时间
    8. calEnd.setTime(dEnd);
    9. // 测试此日期是否在指定日期之后
    10. while (dEnd.after(calBegin.getTime())) {
    11. // 根据日历的规则,为给定的日历字段添加或减去指定的时间量
    12. calBegin.add(Calendar.DAY_OF_MONTH, 1);
    13. list.add(sdf.format(calBegin.getTime()));
    14. }
    1. /**
    2. * 得到本周周一
    3. *
    4. * @return yyyy-MM-dd
    5. */
    6. public static String getMondayOfThisWeek() {
    7. Calendar c = Calendar.getInstance();
    8. int dayofweek = c.get(Calendar.DAY_OF_WEEK) - 1;
    9. if (dayofweek == 0)
    10. dayofweek = 7;
    11. c.add(Calendar.DATE, -dayofweek + 1);
    12. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    13. return sdf.format(c.getTime());
    14. }
    15. /**
    16. * 得到本周周日
    17. *
    18. * @return yyyy-MM-dd
    19. */
    20. public static String getSundayOfThisWeek() {
    21. Calendar c = Calendar.getInstance();
    22. int dayofweek = c.get(Calendar.DAY_OF_WEEK) - 1;
    23. if (dayofweek == 0)
    24. dayofweek = 7;
    25. c.add(Calendar.DATE, -dayofweek + 7);
    26. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    27. return sdf.format(c.getTime());
    28. }
    1. //当前日期加几天
    2. private String addDate(String date,int day){
    3. try {
    4. Date od=sdf.parse(date);
    5. Date nd=addDete(od, day);
    6. return sdf.format(nd);
    7. } catch (ParseException e) {
    8. e.printStackTrace();
    9. }
    10. return "";
    11. }
    12. public static Date addDete(Date d,long day) throws ParseException {
    13. long time = d.getTime();
    14. day = day*24*60*60*1000;
    15. time+=day;
    16. return new Date(time);
    17. }
    1. //两日期相减得到之间天数(是String格式)
    2. public static int daysBetween(String smdate,String bdate) throws ParseException{
    3. Calendar cal = Calendar.getInstance();
    4. cal.setTime(sdf.parse(smdate));
    5. long time1 = cal.getTimeInMillis();
    6. cal.setTime(sdf.parse(bdate));
    7. long time2 = cal.getTimeInMillis();
    8. long between_days=(time2-time1)/(1000*3600*24);
    9. return Integer.parseInt(String.valueOf(between_days));
    10. }

0 0