我要算出论坛用户的在线时间怎么算 听说用SQLSERVER中的DATEDIFF可以吗
要是可以算出的时间会是动态吗

解决方案 »

  1.   

    不必要动用后台数据库服务器。
    用java自己就能算出来。麻烦点,但是比较好理解的方法是:
    取得用户等的时间,取得当前的时间,都转成 long 的值,减出时间差,还是个long类型的值。
    单位是 毫秒,然后自己算算 天,时,分,秒,毫秒。
    用日历组件好像能直接计算出来。
      

  2.   

    用java能实现吗??什么方法学习一下 我不太会用呀 谢谢
      

  3.   

    如果连时间差距都算不出来,要动态还有什么用。
    你要它动态的走,那是页面上的事,sqlserver 也帮不了你,而是应该用 javascript 。
    但是,无论如何,你得把时间差距算出来,然后在这个差距的基础上每秒都去加一秒。先给你个用java算时间间隔(差距)的示例代码吧。
    看了你后来的追帖,看来还差一半。
    package csdn;import java.util.Date;
    import java.text.SimpleDateFormat;
    import java.text.*;/**
     * @author niko7
     * @version 1.0
     */
    public class dt 
    {
        public static void main(String[] args) 
        {
            //建立一个简单的日期格式化控件实例
            //这个实例可以解析字符串到日期型,也能把日期格式化成字符串
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
            try 
            {
                //解析字符串得到一个日期对象
                Date d = sdf.parse("2005-11-01 17:20:56.789");
                //用空的构造方法得到一个日期对象,它被初始化好了,里面的日期是建立它的那一刻
                Date now = new Date();
            
                //用简单的方法减一减,这是两个时间的间隔,单位毫秒
                long r = now.getTime() - d.getTime();
                
                //这是毫秒
                int S = (int)(r%1000); r = (r-S)/1000;//将时间差的单位改成了秒
                int s = (int)(r%60); r = (r-s)/60;//改成分钟了
                int m = (int)(r%60); r = (r-m)/60;//单位为小时了
                int h = (int)(r%24); r = (r-h)/24;//单位:天
                int days = (int)r;
                
                System.out.println( "两个时间相距:"+ days + " 天,"+h+":"+m+":"+s+"."+S);
                System.out.println( "两个时间相距:"+ days + " 天,"+h+":"+((m<10)?"0":"")+m+":"+((s<10)?"0":"")+s+"."+S);
            } 
            catch (ParseException ex) 
            {
            }
        }
    }
      

  4.   

    在我的示例代码中,
    我知道
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
    这个是不用告诉你的,这里我为了解析一个测试用的日期才写上的。//解析字符串得到一个日期对象
    Date d = sdf.parse("2005-11-01 17:20:56.789");以上两行,在你的代码里应该是不需要的,用户什么时候登录就是什么时候,而不是像我的代码这样解析一个日期。
    ------------
    关于算出差距之后的处理,
    我这里只是简单的输出了,
    而你,应该把 天,时,分,秒,甚至毫秒,这些信息输出到html页面中的javascript中。
    然后脚本继续运行起来!
    这样页面上的 计时器 就活了。
    java在服务器上帮你算的,只是这个计时器的起始值!