package homework; import java.io.*; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner; public class Clock_Out { public static int checkCount = 0; public static final long TWO_HOURS = 1000*60*60*2; public static void main(String[] args) throws ParseException { // 上班时间 Calendar calendar_nine = Calendar.getInstance(); calendar_nine.set(Calendar.HOUR_OF_DAY, 9); calendar_nine.set(Calendar.MINUTE, 0); calendar_nine.set(Calendar.SECOND, 0); Date timeNine = calendar_nine.getTime(); long time0 = timeNine.getTime(); System.out.println(time0); System.out.println(timeNine); // 下班时间 Calendar calendar_eighteen = Calendar.getInstance(); calendar_eighteen.set(Calendar.HOUR_OF_DAY, 18); calendar_eighteen.set(Calendar.MINUTE, 0); calendar_eighteen.set(Calendar.SECOND, 0); Date timeEighteen = calendar_eighteen.getTime(); long time7 = timeEighteen.getTime(); System.out.println(time7); System.out.println(timeEighteen); Long lastTime = readLastCheckTime(); long time = checkTime(); if (checkCount != 6){ if (lastTime != null){ if ((time - lastTime) > TWO_HOURS){ System.out.println("打卡失败,已超时"); } else { System.out.println("打卡成功"); } String saveTime = String.valueOf(time); saveDate(saveTime); }else { if ((time - time0) > TWO_HOURS){ System.out.println("打卡失败,已超时"); }else { System.out.println("打卡成功"); } String saveTime = String.valueOf(time); saveDate(saveTime); } }else { if ((time - lastTime) < TWO_HOURS && (time7 - time) < TWO_HOURS){ System.out.println("打卡成功"); }else{ System.out.println("打卡失败,已超时"); } String saveTime = String.valueOf(time); saveDate(saveTime); } System.out.println(checkCount); } private static Long readLastCheckTime() { BufferedReader br = null; Long lastTime = null; try { br = new BufferedReader(new FileReader(new File("./data/checkTime.txt"))); String data = null; while ((data = br.readLine()) != null){ if (data.startsWith("c")){ checkCount = Integer.parseInt(data.substring(2)); }else { lastTime = Long.parseLong(data); } } } catch (IOException e) { e.printStackTrace(); } finally { if (br != null){ try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } return lastTime; } /** * 存储打卡时间戳方法 */ private static void saveDate(String str) { BufferedWriter bw = null; try { bw = new BufferedWriter(new FileWriter(new File("./data/checkTime.txt"),true)); bw.write(str); bw.newLine(); bw.write("c:" + checkCount); bw.newLine(); } catch (IOException e) { e.printStackTrace(); } finally { if (bw != null){ try { bw.close(); } catch (IOException e) { e.printStackTrace(); } } } } /** * 打卡功能模块,每次用户打卡时,调用该模块 * @return long类型时间戳 */ public static long checkTime(){ checkCount++; Date checkTime = new Date(); return checkTime.getTime(); } }
Java实现打卡功能
最新推荐文章于 2024-03-26 19:47:04 发布