JAVA里判断某时间是不是在当天中

2025-03-05 03:02:11
推荐回答(2个)
回答1:

数据库两个字段A(第一次打卡时间,上班打卡),B(任意打卡时间,每打卡一次更新一次,下班打卡)
用打卡时间与A比较,一样则为同一天

回答2:

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

/**
* 问题模拟,解决方案 to 匿名
* 只是一个模拟,希望你能从中获得一些想法
*copy到IDE中会好分析一些
* @author Administrator
*
*/
public class WorkeSimulation {
public static void main(String[] args) {
// 1、扫描指纹 获得 员工信息
// 2、判断该员工改日是否签到、签离
// 3、写入记录
/** 下方为过程的模拟 **/
String 工作号 = "BJ-TNFCP-08001002";
String 姓名 = "JIAQIANLI.CN@GMAIL.COM";
WorkeSimulation simulation = new WorkeSimulation();
simulation.早上打卡(姓名, 工作号);
}

public void 早上打卡(String 姓名, String 工作号) {
// 查询数据库今天是否签到
Date nowtime = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String timestr = sdf.format(nowtime);
String sql = "select * from worke_record where 工作号='" + 工作号 + "'";
sql += " where record_type=" + Type.START_WORKE
+ " and record_time like '" + timestr + "%'";
boolean already = verify(sql);
if (already)
return;
TimeCardRecord record = new TimeCardRecord();
record.setName(姓名);
record.setWorkerNumber(工作号);
record.setType(Type.START_WORKE);
record.setDate(nowtime);
saveRecord(record);
}

public void 下午打卡(String 姓名, String 工作号) {
// 查询数据库今天是否签离
Date nowtime = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String timestr = sdf.format(nowtime);
String sql = "select * from worke_record where 工作号='" + 工作号 + "'";
sql += " where record_type=" + Type.FINISHED_WORKE
+ " and record_time like '" + timestr + "%'";
boolean already = verify(sql);
if (already)
return;
TimeCardRecord record = new TimeCardRecord();
record.setName(姓名);
record.setWorkerNumber(工作号);
record.setType(Type.FINISHED_WORKE);
record.setDate(nowtime);
saveRecord(record);
}

private void saveRecord(TimeCardRecord record) {
// TODO 编写数据库插入
}

/**
* 验证是否数据库存在此条数据
* @param sql
* @return
*/
private boolean verify(String sql) {
boolean flag = true;
// 自己实现 数据查询 并确定flag真假 然后返回
return flag;
}

/**
* 打卡记录类
* @author Administrator
*
*/
class TimeCardRecord {
/** 打卡类型*/
private Type type;
/** 日期*/
private Date date;
/** 员工姓名*/
private String name;
/** 工号*/
private String workerNumber;

public Type getType() {
return type;
}

public void setType(Type type) {
this.type = type;
}

public Date getDate() {
return date;
}

public void setDate(Date date) {
this.date = date;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getWorkerNumber() {
return workerNumber;
}

public void setWorkerNumber(String workerNumber) {
this.workerNumber = workerNumber;
}

}

/**
* 打卡类型枚举
* @author Administrator
*
*/
enum Type {
START_WORKE(1), FINISHED_WORKE(2);

private final int FLAG;

private Type(int flag) {
this.FLAG = flag;
}

@Override
public String toString() {
return "" + FLAG;
}
}
}