腾讯微群加入QQ群

 找回密码
 加入我们

!connect_header_login!

!connect_header_login_tip!

搜索
查看: 552|回复: 0

java 获取当前天之后或之前7天日期

[复制链接]
发表于 2016-8-23 14:58:37 | 显示全部楼层 |阅读模式
//方法一
/**
     * 获取未来7天,包括今天
     */
    private void getNextServenDays() {
        SimpleDateFormat fomater = new SimpleDateFormat("yyyy-MM-dd");
        Calendar calendar = Calendar.getInstance();
        //测试跨年时候的情况
//        calendar.set(2016, 11, 29);
        int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
        int year = calendar.get(Calendar.YEAR);
        int j = 0;
        for (int i = 0; i < 7; i++) {
            //用 j 来作为变量,防止 跨年后,i 的值不对
            calendar.set(Calendar.DAY_OF_YEAR, dayOfYear + j);
            if (calendar.get(Calendar.YEAR) > year) {
                //跨年了
                j = 1;
                //更新 标记年
                year++;
                //重置日历
                calendar.set(year,Calendar.JANUARY,1);
                //重新获取dayOfYear
                dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
            } else {
                j++;
            }
            Log.e(TAG, fomater.format(calendar.getTime()));
        }
    }

//方法二

 /**
     * 获取未来7天,包括今天
     */
    private void getNextServenDays() {
        SimpleDateFormat fomater = new SimpleDateFormat("yyyy-MM-dd");
        for (int i = 0; i < 7; i++) {
            Calendar calendar = Calendar.getInstance();
            //测试跨年时候的情况
//            calendar.set(2016, 11, 29);
            int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
            calendar.set(Calendar.DAY_OF_YEAR, dayOfYear + i);
            Log.e(TAG,fomater.format(calendar.getTime()));
        }
    }



//方法一

/**
     * 获取过去7天,包括今天
     */
    private void getPassedSevenDays() {
        SimpleDateFormat fomater = new SimpleDateFormat("yyyy-MM-dd");
        Calendar calendar = Calendar.getInstance();
        //测试跨年的情况
//        calendar.set(2016, 12, 4);
        int year = calendar.get(Calendar.YEAR);
        int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
        int j = 0;
        for (int i = 0; i < 7; i++) {
            calendar.set(Calendar.DAY_OF_YEAR, dayOfYear - j);
            if (calendar.get(Calendar.YEAR) < year) {
                //跨年了
                j = 1;
                //更新 标记年
                year--;
                //重置日历
                calendar.set(year,Calendar.DECEMBER,31);
                //重新获取dayOfYear
                dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
            }else {
                j++;
            }
            Log.e(TAG, fomater.format(calendar.getTime()));
        }
    }

//方法 二
 /**
     * 获取过去7天,包括今天
     */
    private void getPassedSevenDays() {
        SimpleDateFormat fomater = new SimpleDateFormat("yyyy-MM-dd");
        for (int i = 0; i < 7; i++) {
            Calendar calendar = Calendar.getInstance();
            //测试跨年时候的情况
            calendar.set(2016, 12, 3);
            int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
            calendar.set(Calendar.DAY_OF_YEAR, dayOfYear - i);
            Log.e(TAG,fomater.format(calendar.getTime()));
        }
    }



方法有点low ,但是基本达到要求了。
   







   

    








 

        
0
0

转自:http://blog.csdn.net/qq_18524107/article/details/51494347?locationNum=9
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|手机版|Archiver|小黑屋|一起疯|苦咖啡 ( 新ICP备12000197号  

GMT+8, 2018-1-19 05:54 , Processed in 0.045315 second(s), 12 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表