Jay
2024-11-08 02722a3f9eca857ce7fffea352e9f7ee692a1b71
提交 | 用户 | 时间
149dd0 1 package com.iailab.netsdk.lib.structure;
H 2
3 import com.iailab.netsdk.lib.NetSDKLib;
4
5 /**
6  * 日志信息里的时间定义
7  * @author 47081
8  */
9 public class DHDEVTIME extends NetSDKLib.SdkStructure {
10     /**
11      * 秒    1-60
12      *//*
13     public int                second;
14     *//**
15      * 分    1-60
16      *//*
17     public int                minute;
18     *//**
19      * 时    1-24
20      *//*
21     public int                hour;
22     *//**
23      * 日    1-31
24      *//*
25     public int                day;
26     *//**
27      * 月    1-12
28      *//*
29     public int                month;
30     *//**
31      * 年    2000-2063
32      *//*
33     public int                year;*/
34     public int                date;
35
36
37 /**
38  *second:6;                // 秒    1-60
39  *minute:6;                // 分    1-60
40  *hour:5;                  // 时    1-24
41  *day:5;                   // 日    1-31
42  *month:4;                 // 月    1-12
43  *year:6;                  // 年    2000-2063
44  *
45  */
46 public int getSecond(){
47     return getAnd(date,0,6);
48 }
49 public int getMinute(){
50     return getAnd(date,6,6+6);
51 }
52 public int getHour(){return getAnd(date,6+6,6+6+5);}
53 public int getDay(){return getAnd(date,6+6+5,6+6+5+5);}
54 public int getMonth(){return getAnd(date,6+6+5+5,6+6+5+5+4);}
55 public int getYear(){return 2000+getAnd(date,6+6+5+5+4,6+6+5+5+4+6);}
56
57     /**
58      * c层处理后的原始年份信息
59      * @return
60      */
61     public int getOriginalYear(){return getAnd(date,6+6+5+5+4,6+6+5+5+4+6);};
62 public String getDate(){
63     return getYear()+"-"+getMonth()+"-"+getDay()+" "+getHour()+":"+getMinute()+":"+getSecond();
64 }
65
66     /**
67      * 按位与
68      * @param date 原始数据
69      * @param start 需要偏移的位数
70      * @param end 与的位数
71      * @return
72      */
73     private int getAnd(int date,int start,int end){
74         return date>>start&getOr(start,end);
75     }
76
77     /**
78      * 按位与的位数
79      * @param start 开始与的位数
80      * @param end 结束与的位数
81      * @return
82      */
83     private int getOr(int start,int end){
84         int result=0;
85         for (int i = 0; i < end-start; i++) {
86             result|=(1<<i);
87         }
88         return result;
89     }
90 }