今天上午做的一道面试题目,感觉题目还出的不错.

pigo 2005-06-29 05:20:03
昨天下午投的简历,然后接到电话,今天上午面试.地点在华强北.
先是填写职位申请表,然后被带到一台电脑面前.
对方在Eclipse中定义了一个接口,包含一个计算年龄的方法.
并且写了一个Class来实现这个接口,,junit测试程序也已经写好.
由我填充这个方法,只要测试程序运行即可.时间为一小时.

这个方法是:

public int test(Date today,Date birthday){
//在这里完成代码
}

部分测试数据如下:
今天为2001-12-31,生日为:2001-01-01,要求计算出的年龄为0,
今天为2004-02-28,生日为:2001-02-27,要求计算出的年龄为2,
今天为2004-05-01,生日为:2001-05-01,要求计算出的年龄为3,

还有其它测试数据,一共25组测试数据.基本覆盖了所有的计算细节.
个人感觉这个题目出的还不错.
作完题目之后就是面谈了一会,然后又谈了一会,就被告知等通知了.


其间发现一个有趣的现象,这个Eclipse工程是先用Jbuilder建立的,
因为我看见了 .jbx和.local文件,呵呵.

最近一段时间,继续面试ing......
大家祝福我能够尽快找到工作吧:)



...全文
361 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
hawaii_wx 2005-06-30
  • 打赏
  • 举报
回复
学习学习
I_T_tiger 2005-06-29
  • 打赏
  • 举报
回复
哈哈,比我遇到过的面试题无聊多了。哎!!
学习Java中 2005-06-29
  • 打赏
  • 举报
回复
up
zcjl 2005-06-29
  • 打赏
  • 举报
回复
:)
oswicer 2005-06-29
  • 打赏
  • 举报
回复
faint............我本来因为算不出2,觉得这道题确实有点意思


原来是楼主写错了,那这道题真没意思,怎么会做面试题,也太那啥了吧
wwwtom 2005-06-29
  • 打赏
  • 举报
回复
感觉太教条了,随便问问,怎么实现就好了
pigo 2005-06-29
  • 打赏
  • 举报
回复
//“今天为2004-02-28,生日为:2001-02-27,要求计算出的年龄为2”
不好意思,是我写错了.
应该是
“今天为2004-02-27,生日为:2001-02-28,要求计算出的年龄为2”
hui_feng 2005-06-29
  • 打赏
  • 举报
回复
学习学习.......
oswicer 2005-06-29
  • 打赏
  • 举报
回复
真奇怪,为什么应该是2呢,2001到2003年都不是闰年啊,2004年虽然是,但是只是28号,还没到29号啊,我怎么算都是3

Date today = new Date(2004,2,28);
Date birthday = new Date(2001,2,27);

int additionalDays = 0;

for (int i = birthday.getYear();i <= today.getYear();i ++) {
boolean isLeafYear = new java.util.GregorianCalendar().isLeapYear( i );//是否闰年

if (isLeafYear) {
if (i == birthday.getYear() ) {
if ( birthday.getMonth() <= 2) {
additionalDays++;
}

} else if ( i== today.getYear() ) {

if ( today.getMonth() > 2 || (today.getMonth() == 2 && today.getDate() >= 29 )) {
additionalDays++;
}

} else

additionalDays ++;
}
}

Date temp = new Date(today.getYear(),birthday.getMonth() ,birthday.getDate(),
birthday.getHours() ,birthday.getMinutes() ,
birthday.getSeconds());
long sub1 = temp.getTime() - birthday.getTime() + (additionalDays * 24 * 3600);
long sub2 = today.getTime() - birthday.getTime();

int result = today.getYear() - birthday.getYear() ;

if (sub2 >= sub1)
System.out.println(result);
else
System.out.println(result-1);

不徻写代码 2005-06-29
  • 打赏
  • 举报
回复
祝福
wldandanpig 2005-06-29
  • 打赏
  • 举报
回复
“今天为2004-02-28,生日为:2001-02-27,要求计算出的年龄为2”
为什么都过了3年多1天了,年龄还为2啊
fog628 2005-06-29
  • 打赏
  • 举报
回复
楼主强,

祝福楼主早日找到好的工作
lichen_stone 2005-06-29
  • 打赏
  • 举报
回复
技术真不错,要偶都不知道这个方法该怎么写,楼主能不能把写的方法给大家共享一下
simon0512 2005-06-29
  • 打赏
  • 举报
回复
祝福

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧