Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.itd.dbmrgdao; import com.itd.common.dao.EmployeeDropDownDao; import com.itd.regis.db.entity.ScanRule; import com.itd.scan.dao.ScanDao; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.filechooser.FileNameExtensionFilter; import org.junit.Ignore; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.transaction.TransactionConfiguration; import org.springframework.transaction.annotation.Transactional; /** * * @author Administrator Test if employee punch either time-in or timeout will * credit 8:00 and 17:00 */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:spring/config/BeanLocations.xml") @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false) @Transactional public class TestTime4 { @Autowired ScanDao scanDao; @Ignore @org.junit.Test public void test() throws ParseException { String newTab = "\t"; String[] sysidLine; JFileChooser chooser = new JFileChooser(); FileNameExtensionFilter filter = new FileNameExtensionFilter("Text File", "txt"); chooser.setFileFilter(filter); chooser.showOpenDialog(null); File f = chooser.getSelectedFile(); String filename = f.getAbsolutePath(); try { FileReader reader = new FileReader(filename); BufferedReader br = new BufferedReader(reader); String strLine; String sysid = null, scdate = null, p1Start = null, p1End = null, p2Start = null, p2End = null, otStart = null, otEnd = null; StringBuilder mySql = new StringBuilder( "INSERT INTO scandata(sc_sysid,sc_scode,scdate,p1start,p1end,p2start,p2end,otstart,otend) VALUES (?,?,?,?,?,?,?,?,?)"); while ((strLine = br.readLine()) != null) { String[] parts = strLine.split(" "); if (sysid != null && !sysid.equals(parts[0])) { mySql = mySql.append(", (").append(sysid).append(",\"1985\"").append(",").append(scdate) .append(",").append(p1Start).append(",").append(p1End).append(",").append(p2Start) .append(",").append(p2End).append(",").append(otStart).append(",").append(otEnd) .append(")"); // if (p1Start != null || p2End != null) { // ScanRule scanRule = scanDao.findScanRuleBySysId(sysid); // p1Start = scanRule.getP1start(); // p2End = scanRule.getP2end(); // } // ScanDataTest scanData = new ScanDataTest(sysid, scdate, p1Start, p2End); p1Start = null; p2End = null; } sysid = parts[0]; scdate = parts[1]; if (parts[6].equals("01")) { p1Start = CompareTime(p1Start, parts[5], "01"); } else { p2End = CompareTime(p2End, parts[5], "04"); } } //last line // if (p1Start != null || p2End != null) { // ScanRule scanRule = scanDao.findScanRuleBySysId(sysid); // p1Start = scanRule.getP1start(); // p2End = scanRule.getP2end(); // } // ScanDataTest scanData = new ScanDataTest(sysid, scdate, p1Start, p2End); // System.out.println(scanData); br.close(); } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } } protected static String CompareTime(String a, String b, String operator) throws ParseException { if (a == null) { return b; } SimpleDateFormat parser1 = new SimpleDateFormat("HH:mm"); Date x = parser1.parse(a); Date y = parser1.parse(b); try { // The Magic happens here i only get the Time out of the Date Object SimpleDateFormat parser2 = new SimpleDateFormat("HH:mm"); x = parser2.parse(parser2.format(x)); y = parser2.parse(parser2.format(y)); } catch (ParseException ex) { System.err.println(ex); } switch (operator) { case "01": return ((x.compareTo(y) <= 0) ? a : b); case "04": return ((x.compareTo(y) >= 0) ? a : b); default: throw new IllegalArgumentException("Operator " + operator + " not fould in control!"); } } }