java 做应用_java开发一个应用的总结

需要注意的地方:

(1)业务点要提前列出来,这样可防止遗漏;

(2)关键业务点一定要反复确定,最好能做个测试demo出来,在没有完成之前,Everything is possible;

(3)有陌生的技术点或业务点时,不要随便承诺完成时间;

技术上容易忽视的地方:

oracle如果有时间比较最好要使用to_char或to_date转化为同样的格式。如果db中存的是Date格式,java中的是String格式,

可使用这种转换格式:

to_date(to_char(org_time,’yyyy-MM-dd’),’yyyy-MM-dd’)=to_date(‘+变量+’,’yyyy-MM-dd’)

需要提的一点是,变量两边的单引号是必需的;

msg=msg.replace("%","");

/**

*

* @param date

* @return "yyyy-MM-dd"

*/

public static String getPreMonthDayDate(Date date){

Calendar calendar=Calendar.getInstance();

logger.debug("raw:"+formatToString(date, "yyyy-MM-dd"));

calendar.setTime(date);

calendar.add(Calendar.DATE,-1);

calendar.add(Calendar.MONTH, -1);

String result=formatToString(calendar.getTime(), "yyyy-MM-dd");

logger.debug("OutPut:"+result);

return result;

}

if (con==null||con.isClosed()) {

con=getConnection(database_user2, database_password2);

}

con.setAutoCommit(false);

con=getConnection(database_user2, database_password2);

ps=con.prepareStatement(insertSql);

for (int i = 0; i < receiverArr.length; i++) {

ps.setString(1, receiverArr[i]);

ps.setString(2, msg);

ps.addBatch();

}

ps.executeBatch();

con.commit();

java中 long t = System.currentTimeMillis();

System.out.println(t/60/60/24/365/1000);这个的答案就正确,

而System.out.println(t/(60*60*24*365*1000));输出就错误.

(long i1 = 60*60*24*365;

System.out.println(t/(i1*1000)); )这两句合起来也正确.

为什么,怎么想都想不通 .求高手解答.谢谢了...

主要问题只有一个:

默认书写数字的方式下,数值是 int 型;

那么连续做乘法,是会溢出的

所以:

t/(60*60*24*365*1000)

应修改为(加个L):

t/(60L*60*24*365*1000)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值