android 判断日期是否在特定日期范围内

Android判断日期在指定日期范围
博客内容介绍了如何在Android中实现判断当前日期是否在给定的预热或活动日期范围内,通过修改某个参考博客中的时分秒方法,转换为适用年月日的条件检查。

今天有个需求:判断当前日期是否在给定的预热时间或者活动时间范围内,如果是,就做相应操作,如果不是,就提示

参考https://www.cnblogs.com/zml-java/p/9802278.html 他的是时分秒,我根据自己的需求改成年月日了

package com.example.demo1.test;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;

import com.example.demo1.R;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class OneActivity extends AppCompatActivity {
    private static final String TAG = "OneActivity";
    private Date nowTime,preheatStartTime,preheatEndTime,eventStartTime,eventEndTime;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_one);

        try{
            SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd"); //创建对象制定日期格式 ...
            Date date = new Date(System.currentTimeMillis());
            String  today = format1.format(date);
            Log.i(TAG, "onClick_format1.toString(): "+today);
            String format = "yyyy-MM-dd";
            nowTime = new SimpleDateFormat(format).parse("2020-06-22");
            preheatStartTime = new SimpleDateFormat(format).parse("2020-06-08");//预热开始时间
            preheatEndTime = new SimpleDateFormat(format).parse("2020-06-14");//预热结束时间
            eventStartTime = new SimpleDateFormat(format).parse("2020-06-15");//活动开始时间
            eventEndTime = new SimpleDateFormat(format).parse("2020-06-21");//活动结束时间
        }catch (ParseException e){

        }
        findViewById(R.id.to_second).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                    Log.i(TAG, "onClick__isDate: "+isEffectiveDate(nowTime, preheatStartTime, preheatEndTime));
                    if(isEffectiveDate(nowTime, preheatStartTime, preheatEndTime)){
                        //在预热时间范围内
                        Toast.makeText(OneActivity.this,"活动未开始",Toast.LENGTH_SHORT).show();

                    }else if (isEffectiveDate(nowTime, eventStartTime, eventEndTime)){
                        //活动时间
                        Toast.makeText(OneActivity.this,"在预热时间",Toast.LENGTH_SHORT).show();
                        //TODO

                    }else {
                        Toast.makeText(OneActivity.this,"不在活动时间",Toast.LENGTH_SHORT).show();

                    }


            }
        });
    }
    /**
     * 判断当前时间是否在[startTime, endTime]区间,注意时间格式要一致
     *
     * @param nowTime 当前时间
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return
     */
    public static boolean isEffectiveDate(Date nowTime, Date startTime, Date endTime) {
        if (nowTime.getTime() == startTime.getTime()
                || nowTime.getTime() == endTime.getTime()) {
            return true;
        }

        Calendar date = Calendar.getInstance();
        date.setTime(nowTime);

        Calendar begin = Calendar.getInstance();
        begin.setTime(startTime);

        Calendar end = Calendar.getInstance();
        end.setTime(endTime);

        if (date.after(begin) && date.before(end)) {
            return true;
        } else {
            return false;
        }
    }
}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值