考勤

来源:互联网 发布:韩国实力派女演员 知乎 编辑:程序博客网 时间:2024/06/10 09:18

package demo.read;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Date;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

public class ReadTxtTest
{
 public static void main(String[] args)
 {
  int count = 0;
  try
  {
   // 读取文本文件放入集合

   BufferedReader br = new BufferedReader(
     new FileReader("d:/test.txt"));
   String str = br.readLine();
   List<String> list = new ArrayList<String>();
   // int lines = 0;
   while (null != str)
   {
    // lines++;
    list.add(str);
    str = br.readLine();
    // System.out.println(lines);
    System.out.println(str);

   }
   // for(String st = br.readLine(); st != null; st = br.readLine())
   // {
   // lines++;
   // list.add(br.readLine());
   // System.out.println(lines);
   // }
   // 把集合转换为一维数组
   /*
    * for (int i = 0; i < vec.size(); i++) {
    * System.out.println(vec.get(i)); data[i] = vec.get(i).toString(); }
    * for (int i = 0; i < data.length; i++) {
    * System.out.println(data[i]+" "); }
    */
   String[] data = new String[list.size()];
   data = list.toArray(data);
   // 把一维数组转换为二维数组
   String[][] dataTwo = new String[data.length][3];
   for (int i = 0; i < data.length; i++)
   {
    for (int j = 0; j < 3; j++)
    {
     switch (j)
     {
     case 0:
      dataTwo[i][j] = data[i].toString().substring(0, 5);
      // System.out.println(dataTwo[i][j].toString());
      break;
     case 1:
      dataTwo[i][j] = data[i].toString().substring(6, 16);
      // System.out.println(dataTwo[i][j].toString());
      break;
     case 2:
      dataTwo[i][j] = data[i].toString().substring(17, 25);
      // System.out.println(dataTwo[i][j].toString());
      break;
     default:
      break;
     }

    }
   }
   // 统计出勤天数,是否够40时/周,有无加班
   for (int i = 0; i < dataTwo.length; i++)
   {
    // 先控制工号

    if ("12924".equals(dataTwo[i][0]))
    {
     // 判断越界
     if (i + 1 < dataTwo.length)
     {
      // 控制日期相等
      if (dataTwo[i][0].equals(dataTwo[i + 1][0]))
      {
       // 控制打卡时间是否符合规范
       // if()
       // {
       Calendar calendar = Calendar.getInstance();
       calendar.setTime(new Date(i));
       long timethis = calendar.getTimeInMillis();
       calendar.set(2007, 7, 1);
       long timeend = calendar.getTimeInMillis();
       long theday = (timeend - timethis)  / (1000 * 60 * 60 * 24);
       System.out.print(theday);

       count++;
       // }
      }
     }
    }
   }
   if (count % 2 == 0)
   {
    count = count / 2;
   } else
   {
    count = count / 2 + 1;
   }
   System.out.println(count);

  } catch (FileNotFoundException e)
  {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e)
  {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

 }

}

 

12924 2012-09-10 08:30:13 立人
12924 2012-09-10 18:30:22 立人
12924 2012-09-11 08:30:13 立人
12924 2012-09-11 18:30:21 立人
12924 2012-09-12 08:30:13 立人
12924 2012-09-12 20:30:21 立人
12304 2012-09-10 08:30:13 永春
12304 2012-09-10 18:30:21 永春
12304 2012-09-11 08:30:13 永春
12304 2012-09-11 18:30:21 永春
12304 2012-09-12 08:30:13 永春
12304 2012-09-12 20:30:21 永春
12260 2012-09-10 08:30:13 赫斯
12260 2012-09-10 18:30:21 赫斯
12948 2012-09-10 08:30:13 电科
12948 2012-09-10 18:30:21 电科

 

package demo.read;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;


public class TestDemo
{  
 //读取文本文件
 public String[] readTxt()
 {
  
   BufferedReader br=null;
   String[] data = null;
   try
   {
    br = new BufferedReader(new FileReader("d:/test.txt"));
    String str = br.readLine();
    List<String> list = new ArrayList<String>();
    while (null !=str )
    {
      list.add(str);
      str = br.readLine();
    
    }
    // 把集合转换为一维数组
    data = new String[list.size()];
     data = list.toArray(data);
   } catch (FileNotFoundException e)
   {
    e.printStackTrace();
   } catch (IOException e)
   {
    e.printStackTrace();
   }
   
  return data;
  
 }

 // 把一维数组转换为二维数组
 public String[][] readString(String[] data)
 {
  String[][] dataTwo = new String[data.length][3];
  for(int i=0;i<data.length;i++)
  {
   for(int j=0;j<3;j++)
   {
    switch(j)
    {
    case 0: dataTwo[i][j]=data[i].toString().substring(0,5);
    break;
    case 1: dataTwo[i][j]=data[i].toString().substring(6,16);
    break;
    case 2: dataTwo[i][j]=data[i].toString().substring(17,25);
    break;
    default: break;
    }

   }
  }
  return dataTwo;
  
 }
 
 //用工号统计出勤天数
 
 public void date(String dataTwo[][])
 {
  for(int i=0;i<dataTwo.length;i++)
  {
   result(dataTwo,dataTwo[i][0]);
  }
  
 }
 //  统计出勤天数,是否够40时/周,有无加班
 public int result(String[][] dataTwo,String temp)
 {   int count = 0;
  for(int i=0;i<dataTwo.length;i++)
   {
   if (temp.equals(dataTwo[i][0]))
    {
    if(i+1<dataTwo.length)
    {
    if(dataTwo[i][0].equals(dataTwo[i+1][0]))
    {
     //控制打卡时间是否符合规范
//     if()      
//     {
      count++;
//     }
     
    }
    }
    }
   }
  if(count%2==0)
  {
   count=count/2;
  }
  else
  {
   count=count/2+1;
  }
  return count;
   
 }
 

}


 

原创粉丝点击