时间日期与IP转换方法

1.代码

import java.io.*;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Scanner;


public class Main {
    
    public static void IP2Long(){
        long i = 138;
        i = (i << 8) | 12;
        i = (i << 8) | 175;
        i = (i << 8) | 183;
        System.out.println("i = " + i);
    }

    public static String Long2IP(long ipAddr){
        long j = ipAddr;
        if(j == 0){
            return Long.toString(j);
        }
        long i = 0;
        StringBuilder IP = new StringBuilder();
        for(int k = 0;k < 4;k++) {
            i = j & 0xff;
            j = j >> 8;
            IP.append(i + ".");
        }
        return IP.toString();
    }

    public static String timeTransfer(long time) {

        DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String timeStr = format.format(time);
        return timeStr;
    }

    public static String usedTimeTransfer(long ms){
        StringBuilder totalTime = new StringBuilder();
        long hour = ms/1000/3600;
        long minute = (ms%3600000)/1000/60;
        long second = (ms%60000)/1000;
        totalTime.append(hour + "小时" + minute + "分" + second + "秒");
        return totalTime.toString();
    }

    public static String readUserInfo(String userName){
        BufferedReader userIn = null;
        String userPath = "C:/Users/DELL/Desktop/" + userName;
        StringBuilder userInfo = new StringBuilder();  //将读到的表信息放在userInfo中
        try {
            userIn = new BufferedReader(new InputStreamReader(
                    new FileInputStream(userPath),"GBK"));

            String temp,typeStr;
            int line = 1;
            long time,ipAddr;
            int type;
            long beginTime = 0,endTime = 0,usedTime = 0,totalTime = 0;
            // 一次读入一行,直到读入null为文件结束
            while ((temp = userIn.readLine()) != null) {
                System.out.print("line " + line + ":  ");
                String []arrayStr = temp.split(" ");
                time = Long.parseLong(arrayStr[0]) * 1000;
                type = Integer.parseInt(arrayStr[1]);
                ipAddr = Long.parseLong(arrayStr[2]);

                switch (type){
                    case 0:{
                        typeStr = "登录";
                        beginTime = time;
                        System.out.println("time=" + timeTransfer(time) + ",type=" + typeStr + ",ipAddr=" + Long2IP(ipAddr));
                        break;
                    }
                    case 1:{
                        typeStr = "注销";
                        endTime = time;
                        usedTime = endTime - beginTime;
                        totalTime = totalTime + usedTime;
                        System.out.println("time=" + timeTransfer(time) + ",type=" + typeStr + ",ipAddr=" + Long2IP(ipAddr)
                                + ",totalTime=" + usedTimeTransfer(usedTime));
                        break;
                    }
                    case 2:{
                        typeStr = "超时";
                        endTime = time;
                        usedTime = endTime - beginTime;
                        totalTime = totalTime + usedTime;
                        System.out.println("time=" + timeTransfer(time) + ",type=" + typeStr + ",ipAddr=" + Long2IP(ipAddr)
                                + ",totalTime=" + usedTimeTransfer(usedTime));
                    }
                }
                line++;
            }
            System.out.println("总用时:" + usedTimeTransfer(totalTime));
            return userInfo.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                userIn.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return userInfo.toString();
    }


    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        String userName = scanner.next();
        readUserInfo(userName);

    }
}

2.输入文件

1544065474 0 2316087223
1544065704 1 0
1544065757 0 2316087223
1544066358 2 0
1544149585 0 2316087223
1544149807 0 2316087223
1544149857 0 2316087223
1544149892 0 2316087223
1544149948 0 2316087223
1544150029 0 2316087223
1544150135 1 0
1544492366 0 2316087223
1544493121 2 0
1544494063 0 2316087223
1544495030 1 0
1544495065 0 2316087223
1544495191 1 0
1544496425 0 2316087223
1544496683 0 2316087223
1544496724 1 0
1544513256 0 2316087223
1544513916 2 0
1544515411 0 2316087223
1544516012 1 0

3.输出结果

line 1:  time=2018-12-06 11:04:34,type=登录,ipAddr=183.175.12.138.
line 2:  time=2018-12-06 11:08:24,type=注销,ipAddr=0,totalTime=0小时3分50秒
line 3:  time=2018-12-06 11:09:17,type=登录,ipAddr=183.175.12.138.
line 4:  time=2018-12-06 11:19:18,type=超时,ipAddr=0,totalTime=0小时10分1秒
line 5:  time=2018-12-07 10:26:25,type=登录,ipAddr=183.175.12.138.
line 6:  time=2018-12-07 10:30:07,type=登录,ipAddr=183.175.12.138.
line 7:  time=2018-12-07 10:30:57,type=登录,ipAddr=183.175.12.138.
line 8:  time=2018-12-07 10:31:32,type=登录,ipAddr=183.175.12.138.
line 9:  time=2018-12-07 10:32:28,type=登录,ipAddr=183.175.12.138.
line 10:  time=2018-12-07 10:33:49,type=登录,ipAddr=183.175.12.138.
line 11:  time=2018-12-07 10:35:35,type=注销,ipAddr=0,totalTime=0小时1分46秒
line 12:  time=2018-12-11 09:39:26,type=登录,ipAddr=183.175.12.138.
line 13:  time=2018-12-11 09:52:01,type=超时,ipAddr=0,totalTime=0小时12分35秒
line 14:  time=2018-12-11 10:07:43,type=登录,ipAddr=183.175.12.138.
line 15:  time=2018-12-11 10:23:50,type=注销,ipAddr=0,totalTime=0小时16分7秒
line 16:  time=2018-12-11 10:24:25,type=登录,ipAddr=183.175.12.138.
line 17:  time=2018-12-11 10:26:31,type=注销,ipAddr=0,totalTime=0小时2分6秒
line 18:  time=2018-12-11 10:47:05,type=登录,ipAddr=183.175.12.138.
line 19:  time=2018-12-11 10:51:23,type=登录,ipAddr=183.175.12.138.
line 20:  time=2018-12-11 10:52:04,type=注销,ipAddr=0,totalTime=0小时0分41秒
line 21:  time=2018-12-11 15:27:36,type=登录,ipAddr=183.175.12.138.
line 22:  time=2018-12-11 15:38:36,type=超时,ipAddr=0,totalTime=0小时11分0秒
line 23:  time=2018-12-11 16:03:31,type=登录,ipAddr=183.175.12.138.
line 24:  time=2018-12-11 16:13:32,type=注销,ipAddr=0,totalTime=0小时10分1秒
总用时:1小时8分7秒

 

你可能感兴趣的:(时间日期与IP转换方法)