求一个可以返回天数的的方法! 表bbs_messages中有字段:senddates(留言时间),expiration(到期时间)!现在我需要在页面上显示的不是他们,而是有效天数!希望可以看到即简单又实用的方法!我自己也在想!请各位也帮俺想想!谢谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 expiration(到期时间)-senddates(留言时间)? 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) 这个改下就是你想要的了,,你看下,,我没什么时间帮你改,不好意思 这样吧你把senddates(留言时间) 和 expiration(到期时间)! 全转成毫秒数然后想减 ,除以每天的毫秒数。最精确了 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); }} 其实我的意思是:因为我设立senddates(留言时间) 和 expiration(到期时间)!是为了以后更好的去判断!好了!谢谢~ 我现在想到了更好的解决办法了! 干嘛不直接用sql的来计算啊sql sever的代码SELECT DATEDIFF(DAY, CONVERT(DATETIME,'2009-02-03',121 ), CONVERT(DATETIME,'2009-03-02',121 )) 那样会更麻烦,我现在想直接把expiration(到期时间)字段换成天数!这样就不用另写方法了!还可以继续判断! -- 仅限于 mysql SELECT TO_DAYS(expiration) - TO_DAYS(senddates) FROM t_yourtable 这个代码怎么改就正确了? 再次请教关于AD的新增用户cn为中文的问题 关于一道1到N自然数排序的华为面试题的疑问 java实现多线程通信 用java怎么样操作word方档和excle表?(在此先谢啦) 急,帮帮我 解释执行JAVA时的一个小问题! 算法问题 什么地方有JBuilder 中文版下载 大家救我啊! 我封装了数据库的一些简单操作,大家看看代码是否合理,万分感谢 jacob 打开有密码保护的文件卡住,如何解决
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) 这个改下就是你想要的了,,你看下,,我没什么时间帮你改,不好意思
你把senddates(留言时间) 和 expiration(到期时间)! 全转成毫秒数
然后想减 ,除以每天的毫秒数。最精确了
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);
}
}
好了!谢谢~ 我现在想到了更好的解决办法了!
sql sever的代码
SELECT
DATEDIFF(DAY,
CONVERT(DATETIME,'2009-02-03',121 ),
CONVERT(DATETIME,'2009-03-02',121 )
)
-- 仅限于 mysql
SELECT TO_DAYS(expiration) - TO_DAYS(senddates)
FROM t_yourtable