近期知识总结(计算台风面雨量及统计影响XX市的台风)

知识点温故


1. poi读写exel文件的内容。
详情见 IntelliJ IDEA环境下 POI读写Exel文件

2. 计算两个date格式的日期之间相差的天数
按理说,计算两个date之间相差的天数,可以直接使用getTime()分别获得毫秒数后相减,再转换为天数。但是这种方法可能会产生误差。原因是直接相减有可能会多出一天,而我们想要的结果是不关心两个date的时、分、秒的值,只在乎两个“日”之间的差值。
那么为了避免这种情况,我们可以采用以下这种方式来获得想要的结果:
先讲Date对象转换为Calendar对象,将时、分、秒置零。再getTime()获取毫秒数相减就可以了。

示例代码:

public int calculateDaysBetween(Date firstDate,Date seconddate){
        //初始化两个Calendar实例
        Calendar firstCalendar = Calendar.getInstance();
        Calendar secondCalendar = Calendar.getInstance();
        //将date对象转换为Calendar类型
        firstCalendar.setTime(firstDate);
        secondCalendar.setTime(seconddate);
        //将时、分、秒置零
        firstCalendar.set(Calendar.HOUR_OF_DAY, 0);
        firstCalendar.set(Calendar.MINUTE, 0);
        firstCalendar.set(Calendar.SECOND, 0);

        secondCalendar.set(Calendar.HOUR_OF_DAY, 0);
        secondCalendar.set(Calendar.MINUTE, 0);
        secondCalendar.set(Calendar.SECOND, 0);
        //计算两个日期相差的天数
        return ((int)(secondCalendar.getTime().getTime()/1000)-(int)(firstCalendar.getTime().getTime()/1000))/3600/24 + 1;
        //加1是因为我需要的天数包括开始和结束的那两天
    }

3. for each循环的使用
有的时候for each循环比for循环更高效,当遍历进行的操作与下标无关时,最好使用for each循环,这样我们就无须关心被遍历对象的长度,只需要把注意力集中在操作上面,会使得代码清晰不少。

示例代码:

    for (TyphoonInfluence t : typhoonInfluenceList) {  
            String percentage = t.getFirst() / t.getAll() * 100;
            t.setProportion(percentage);
        }

4. 两个小知识点
两个数相除,结果的类型会与精度大的那个数保持一致。比如 int/int ,结果还是 int ;int / float 结果为float类型;int / double 类型,结果则为 double 类型。
想让浮点数格式化输出,可以用 String.format("%.nf",str) 方法,n为要保留的小数位数。

**5. 容易犯的小错误 **
这个以前也出现过,但还是偶尔忘记,有必要养成良好的习惯,保证以后不再犯同样的错误。
java中字符串的比较最好使用 .equals() 而不是 '’。因为’'比较的是字符串变量本身的值,即两个对象在内存中的首地址。而.equals()比较的则是字符串的内容。注意:这对StringBuffer不适用,因为它没有重写equals方法,用的还是Object的equals方法,即比较的还是两个变量的首地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值