表bbs_messages中有字段:senddates(留言时间),expiration(到期时间)!
现在我需要在页面上显示的不是他们,而是有效天数!希望可以看到即简单又实用的方法!
我自己也在想!请各位也帮俺想想!谢谢了!

解决方案 »

  1.   

    expiration(到期时间)-senddates(留言时间)?
      

  2.   


    import java.util.*; 
    import java.text.SimpleDateFormat; 
    import java.sql.Date; 
    import java.sql.Time; 
    import java.sql.Timestamp; public class TestDateTime 

        public static void main(String[] argv) 
        { 
            long nCurrentTime = System.currentTimeMillis(); 
            java.util.Date utilDate = new java.util.Date(nCurrentTime);         //以下是用于数据库操作的日期和时间类 
            java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());           //java.util.Date和java.sql.Date的转换 
            java.sql.Time sqlTime = new java.sql.Time(utilDate.getTime()); 
            java.sql.Timestamp sqlTimestamp = new java.sql.Timestamp(nCurrentTime);         //Calendar用于获取指定的时间项(字段) 
            Calendar calendar = Calendar.getInstance(); 
            calendar.setTimeInMillis(nCurrentTime);         int year = calendar.get(Calendar.YEAR); 
            int month = calendar.get(Calendar.MONTH) + 1;   //注意:返回的月份是基于0的! 
            int day = calendar.get(Calendar.DAY_OF_MONTH); 
            int hour = calendar.get(Calendar.HOUR_OF_DAY); 
            int minute = calendar.get(Calendar.MINUTE); 
            int second = calendar.get(Calendar.SECOND);         System.out.println("Current date is: " + year + "年" + month + "月" + day + "日"); 
            System.out.println("Current time is: " + hour + "时" + minute + "分" + second + "秒");         //SimpleDateFormat用于格式化日期和时间 
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
            String szDatetime1 = df.format(utilDate); 
            System.out.println("Current datetime is: " + szDatetime1);         //以下计算两个日期值之间相差的时间 
            java.util.Date date2 = new java.util.Date(nCurrentTime - 24600 * 1000);         long nMilliSeconds = utilDate.getTime() - date2.getTime(); 
            long nSeconds =  nMilliSeconds / 1000;  //把毫秒换算成秒 
            double nDays = nSeconds / (24d * 60d * 60d);  //把秒换算成天         String szDatetime2 = df.format(date2); 
            System.out.println("Time between " + szDatetime1 + " and " + szDatetime2 + " is " + nSeconds + " seconds (" + nDays + " days)"); 
        } 
    } 程序运行结果: 
    C:\java>java   TestDateTime 
    Current date is: 2005年1月2日 
    Current time is: 15时55分45秒 
    Current datetime is: 2005-01-02 15:55:45 
    Time between 2005-01-02 15:55:45 and 2005-01-02 09:05:45 is 24600 seconds (0.2847222222222222 days)  这个改下就是你想要的了,,你看下,,我没什么时间帮你改,不好意思
      

  3.   

    这样吧
    你把senddates(留言时间) 和 expiration(到期时间)! 全转成毫秒数
    然后想减 ,除以每天的毫秒数。最精确了
      

  4.   


    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;public class Test {
        
    //日期的类型 yyyy-MM-dd
        public static void main(String[] args) throws ParseException {     DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        
        Date senddates = df.parse("2009-9-9");
        Date expiration = df.parse("2009-10-11");
        Long time = expiration.getTime() - senddates.getTime();
        System.out.println("有效天数为 --- " + time/24/60/60/1000);
        }
    }
      

  5.   

    其实我的意思是:因为我设立senddates(留言时间) 和 expiration(到期时间)!是为了以后更好的去判断!
    好了!谢谢~ 我现在想到了更好的解决办法了!
      

  6.   

    干嘛不直接用sql的来计算啊
    sql sever的代码
    SELECT 
    DATEDIFF(DAY, 
    CONVERT(DATETIME,'2009-02-03',121 ), 
    CONVERT(DATETIME,'2009-03-02',121 )
    )
      

  7.   

    那样会更麻烦,我现在想直接把expiration(到期时间)字段换成天数!这样就不用另写方法了!还可以继续判断!
      

  8.   


    -- 仅限于 mysql 
    SELECT TO_DAYS(expiration) - TO_DAYS(senddates) 
    FROM t_yourtable