算法——在安卓中实现对前一个星期或后一个星期日期的获取

在开发过程中,总会遇到对日期的选择这样的一个问题,在最近的开发中我遇到了一个需求,就是将前一个星期的日期(每天的年月日)提取出来,然后整理成历史记录以供查询,在尝试了多种方法后,最后终有收获,现将方法分享出来。

整个的方法写成了一个类,在这个类里面我主要运用到了Calendar这个类来帮助我们实现对前一星期日期的提取。

       具体思路如下:

       1、先使用Calendar获取当前的年份、当前的月份、当前的日期。

       2、在用Calendar的set函数设定当前时间。

       3、通过Calendar的add函数来寻找前或者后几天的日期。

       4、最后用Calendar的get函数获取当时的具体日期。

       本方法将日期转化为String并保存在List<String>中了,其中有一些细节需要大家仔细注意。

        具体代码如下:

package com.example.app_zhihuribao.support;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.TimeZone;

/**
 * Created by 尽途 on 2017/7/2.
 */

public final class tabtitle {
    public tabtitle(){
    }
    public List<String> getTitles(){
        List<String>titles=new ArrayList<String>();
        String mYear; // 当前年
        String mMonth; // 月
        String mDay;
        int current_day;
        int current_month;
        int current_year;

        final Calendar c = Calendar.getInstance();
        c.setTimeZone(TimeZone.getTimeZone("GMT+8:00"));
        current_day=c.get(Calendar.DAY_OF_MONTH);
        current_month=c.get(Calendar.MONTH);
        current_year=c.get(Calendar.YEAR);
        for (int i=0;i<7;i++){
            c.clear();//记住一定要clear一次
            c.set(Calendar.MONTH,current_month);
            c.set(Calendar.DAY_OF_MONTH,current_day);
            c.set(Calendar.YEAR,current_year);
            c.add(Calendar.DATE,-i);//j记住是DATE
            mMonth = String.valueOf(c.get(Calendar.MONTH)+1);// 获取当前月份
            mDay = String.valueOf(c.get(Calendar.DAY_OF_MONTH));// 获取当前日份的日期号码
            mYear = String.valueOf(c.get(Calendar.YEAR));// 获取当前年份
            String date =mYear+"年"+mMonth + "月" + mDay + "日";
            titles.add(date);
        }
        return titles;
    }
}

如果是对后一个星期只需将其中的-i改为+i即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值