zrrx笔试题(一)——文件复制&日期天数差

1. 利用输入输出流来复制文件

步骤:1.构造文件字节输入输出流  2.创建一个字节数组,用来指定每次复制的字节大小   3.输入流从源文件读取字节,输出流将字节写入文件

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class JavaIO {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream(
                "E:\\Download\\12.txt");
        FileOutputStream fos = new FileOutputStream("F:\\22.txt");
        byte[] b = new byte[1024000];
        int n;
        while ((n = fis.read(b)) != -1) {
            fos.write(b, 0, n);
        }
        fis.close();
        fos.close();
    }
}

fis.read(b)的作用是从源文件最多读取b.length字节的数据送给b数组,返回的是读入的字节总数。

本例中b.length的长度指定为1024000,当最后一次不足1024000,例如只剩下5000字节时,返回的就是5000,此时所有字节读取完毕。下一次读入时由于已到达文件末尾,返回-1。

fos.write(b, 0, n)意思是将byte数组从偏移量0开始的n个字节写入文件输出流。

程序结束后记得要关闭输入输出流。

2. 计算两个日期之间相差间隔天数

法一:直接通过计算两个日期的毫秒数,他们的差除以一天的毫秒数,即可得到我们想要的两个日期相差的天数。 

public static long getQuot(String startdate, String enddate) {
        long m_intervalday = 0;//初始化时间间隔的值为0
        //使用的时间格式为yyyy-MM-dd
        SimpleDateFormat m_simpledateformat = new SimpleDateFormat("yyyy-MM-dd");
        try {
        //创建两个Date对象
        Date date1 = m_simpledateformat.parse(startdate);
        Date date2 = m_simpledateformat.parse(enddate);
        m_intervalday = date2.getTime() - date1.getTime();//计算所得为毫秒数
        m_intervalday = m_intervalday / 1000 / 60 / 60 / 24;//计算所得的天数
        } catch (ParseException e) {
        e.printStackTrace();
        }
        return m_intervalday;
        }
//简写
 public static int differentDaysByMillisecond(Date date1,Date date2)  {
int days = (int) ((date2.getTime() - date1.getTime()) / (1000*3600*24));
return days;  } 

法二:

通过Calendar类的日期比较。注意:这里需要考虑一下:

  • 日期是跨年份的,如一个是2012年,一个是2015年的
  • 年份是分闰年和平年的,各自的天数不同
public static int differentDays(Date date1,Date date2){
        Calendar cal1 = Calendar.getInstance();
        cal1.setTime(date1);
        Calendar cal2 = Calendar.getInstance();
        cal2.setTime(date2);
        int day1= cal1.get(Calendar.DAY_OF_YEAR);
        int day2 = cal2.get(Calendar.DAY_OF_YEAR);
        int year1 = cal1.get(Calendar.YEAR);
        int year2 = cal2.get(Calendar.YEAR);
        if(year1 != year2){ //同一年
           int timeDistance = 0 ;
           for(int i = year1 ; i < year2 ; i ++){
               if(i%4==0 && i%100!=0 || i%400==0) //闰年
                   {    timeDistance += 366;   }
               else //不是闰年
                   {    timeDistance += 365;   }   }
           return timeDistance + (day2-day1) ;  }
        else //不同年
            {   System.out.println("判断day2 - day1 : " + (day2-day1));
            return day2-day1;  }  } 

法二测试代码:

 String dateStr = "2013-1-1 21:21:28";    String dateStr2 = "2015-1-2 1:21:28";
  SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     try  {
           Date date2 = format.parse(dateStr2);
           Date date = format.parse(dateStr);
           System.out.println("两个日期的差距:" + differentDays(date,date2));
           } catch (ParseException e) {
               e.printStackTrace();
           } 
时间: 2024-11-08 04:48:02

zrrx笔试题(一)——文件复制&日期天数差的相关文章

js日期天数差

var s1 = "2007-01-01"; var s2 = "2007-12-31"; s1 = s1.replace(/-/g, "/"); s2 = s2.replace(/-/g, "/"); s1 = new Date(s1); s2 = new Date(s2); var days= s1.getTime() - s2.getTime(); var time = parseInt(days / (1000 * 6

js比较两个日期天数差

var bDate = new Date("2015-2-25"), var nDate = new Date(), var eDate = new Date(bb.getFullYear(),bb.getMonth(),bb.getDate()); var daycount = (bDate-eDate)/24/60/60/1000; console.log(daycount);

2019年上海地区最新JAVAEE开发面试与笔试题

前端JS专题面试题: 1.JavaScript如何创建,添加,移除,查找节点. 创建: element.cloneNode() : 克隆元素./ document.createElement('div') 创建元素. 添加: element.appendChild() 追加子元素. / element.innerHTML = element 设置内部元素./element.insertBefore() 在某元素前,添加新节点. 移除: parentElement.removeChild( 子el

Js获取当前日期时间+日期印证+判断闰年+日期的天数差+日期格式化+JS判断某年某月有多少天

Js获取当前日期时间+日期验证+判断闰年+日期的天数差+日期格式化+JS判断某年某月有多少天 字符串转日期型+Js当前日期时间+日期验证+判断闰年+日期的天数差+日期格式化+日期所在年的第几周 日期时间脚本库方法列表Date.prototype.isLeapYear 判断闰年Date.prototype.Format 日期格式化Date.prototype.DateAdd 日期计算Date.prototype.DateDiff 比较日期差Date.prototype.toString 日期转字符

&lt;转&gt;网易2016实习生前端笔试题部分总结

网易2016实习生前端笔试题部分总结 原文地址:http://www.cnblogs.com/venoral/p/5325202.html 这只是部分题,答案为个人观点如有错误欢迎指出,感觉考点都挺基础,但是很注重考细节方面,通过整理也知道自己在CSS3和HTML5,网络知识等方面的不足还是得多学多练多思考.攒rp,希望自己在明天360笔试中能轻松答过~ css 1.多选 //HTML <p>很长的一段文字,很长的一段文字,很长的一段文字,特别长的文字</p> //CSS p{ w

老男孩教育-linux面试题-笔试题-1

2. 笔试题-1 2.1 新建一个用户user,密码是123456,并将其加到root组 useradd user -G root && echo "123456"|passwd --stdin user 2.2 显示当前系统的日期和时间 [[email protected] /]# date +%F 2016-08-25 [[email protected] /]# date +%X 10时16分25秒 [[email protected] /]# date +%H:

MySql 笔试题

------前两天刚做了一套Mysql笔试题,分享给大家------------------ 第一部分.单选题(共40分) 1.mysql中唯一索引的关键字是( C  ) A. fulltext index  B.only  index   C.unique index D.index 2.下面关于索引描述中错误的一项是( C   ) A.索引可以提高数据查询的速度 B.索引可以降低数据的插入速度 C.innodb存储引擎支持全文索引 D.删除索引的命令是drop index 3.支持主外键,索

php 笔试题

1.用PHP打印出前一天的时间格式是2006-5-10 22:21:21 解:echo date(‘Y-n-d H:i:s’, strtotime(‘-1 day’)); 原因: format 字符说明返回值例子a小写的上午和下午值am 或 pmA大写的上午和下午值AM 或 PMd月份中的第几天,有前导零的 2 位数字01 到 31D星期中的第几天,文本表示,3 个字母Mon 到 SunF月份,完整的文本格式,例如 January 或者 MarchJanuary 到 Decemberg小时,12

转载 遇到过的一些php笔试题

遇到过的一些php笔试题 1.linux的多线程和多进程有什么区别?什么时候使用多线程,什么时候使用多进程? 答:(1)进程资源调度的最小单位,线程是cpu调度的最小单位:多进程开销大,多线程开销小,这是最基本的区别:一个进程里面可能有很多线程,把进程分解为线程之后就可以有效利用cpu和内存 (2)当需要频繁创建和销毁时优先选用多线程: 需要进行大量计算的优先使用线程: 强相关的处理用线程,弱相关的处理用进程:    可能要扩展到多机分布的用进程,多核分布的用线程: 都满足需求的情况下用最熟悉最