国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

java統計當前在線數

2019-11-18 14:49:46
字體:
來源:轉載
供稿:網友


package com.hnedu.stat;
/**
* 計算在線人數,說明:
*
* 在訪問頁面放入:
* com.hnedu.stat.OnlineCounter.addUser(Object object)
* 一般用ip來作為object的傳入值,當然,假如網站統計登陸在線人數,也可用用戶名
* 來作為object傳入值。
*
* 調用顯示在線人數
* com.hnedu.stat.OnlineCounter.getOnlineCount() *
*
* com.hnedu.stat.OnlineCounter.getOnline()
* 返回一個List,里面以String[]形式存放傳入的object值和最后訪問頁面時間。
* by crazyren 2003-08-05 email: c_crazyren@hotmail.com
*/
import java.util.List;
import java.util.ArrayList;
import javax.servlet.http.Httpsession;
public class OnlineCounter {
  PRivate static List list = new ArrayList();

  private OnlineCounter() {
  }
  public static void addUser(Object object) {
    //得到用戶當前訪問時間
    String nowtime = com.hnedu.util.StringUtils.getTime("mm:ss");
    //Str數組用來存放用戶得ip和訪問時間
    String[] str = new String[2];
    str[0] = object.toString();
    str[1] = nowtime;

    //temp數組用來臨時存放從list里面取出的用戶ip和訪問時間
    String[] temp = new String[2];

    //循環list
    for (int i = 0; i < list.size(); i++) {
      temp = (String[])list.get(i);
      //假如從list里面取出的用戶ip和str里面存放的ip相同,則更新訪問時間
      if(temp[0].equals(str[0])) {
        list.set(i,str);
        return;
      }
      //假如用戶超過5分鐘沒有訪問,則認為不在線
      if(suBTime(nowtime,temp[1]) > 300) {
        list.remove(i);
      }
    }
    //添加一個新的在線用戶
    list.add(str);
    //釋放資源
    str = null;temp = null;
  }

  public static int getOnlineCount() {
    //返回當前在線人數
    return list.size();
  }

  public static List getOnline() {
    return list;
  }
  /** 計算兩個時間差,返回相差秒數 */
  private static int subTime(String src,String des) {
    int n = 0;
    java.util.Calendar ca = java.util.Calendar.getInstance();
    long time1 =
      com.hnedu.util.StringUtils.compareStringTime(src,des,"mm:ss");
    ca.setTimeInMillis(time1);
    n = (ca.get(java.util.Calendar.MINUTE)) * 60;
    n = n + ca.get(java.util.Calendar.SECOND);
    return n;
  }
}



引用的StringUtils里面的兩個方法:

  /**
   * 獲得當前時間
   * @param parrten 輸出的時間格式
   * @return 返回時間
   */
  public static String getTime(String parrten)
  {
    String timestr;
    if(parrten==nullparrten.equals(""))
    {
      parrten="yyyyMMddHHmmss";
    }
    java.text.SimpleDateFormat sdf=new SimpleDateFormat(parrten);
    java.util.Date cday=new Date();
    timestr=sdf.format(cday);
    return timestr;
  }

  /**
   * 比較兩個字符串時間的大小
   * @param t1 時間1
   * @param t2 時間2
   * @param parrten 時間格式 :yyyy-MM-dd
   * @return 返回long =0相等,>0 t1>t2,<0 t1<t2
   */
  public static long compareStringTime(String t1,String t2,String parrten)
  {
      SimpleDateFormat formatter = new SimpleDateFormat (parrten);
      ParsePosition pos = new ParsePosition(0);
      ParsePosition pos1 = new ParsePosition(0);
      Date dt1=formatter.parse(t1,pos);
      Date dt2=formatter.parse(t2,pos1);
      long l=dt1.getTime()-dt2.getTime();
      return l;
  }



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 行唐县| 突泉县| 卓尼县| 雷波县| 桂东县| 安远县| 囊谦县| 建湖县| 顺平县| 三台县| 伊川县| 洪江市| 永福县| 册亨县| 莒南县| 丰台区| 绥阳县| 黎川县| 波密县| 葵青区| 光山县| 平乡县| 龙泉市| 怀宁县| 荥阳市| 赣州市| 尼勒克县| 布尔津县| 玉门市| 石阡县| 南阳市| 望江县| 澎湖县| 邹平县| 桃江县| 海盐县| 安溪县| 贵州省| 张家口市| 来宾市| 西吉县|