今天有个需求:判断当前日期是否在给定的预热时间或者活动时间范围内,如果是,就做相应操作,如果不是,就提示
参考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;
}
}
}
Android判断日期在指定日期范围
博客内容介绍了如何在Android中实现判断当前日期是否在给定的预热或活动日期范围内,通过修改某个参考博客中的时分秒方法,转换为适用年月日的条件检查。
4377

被折叠的 条评论
为什么被折叠?



