计算机复试java_2017杭电计算机研究生复试笔试编程题第二题(JAVA)

输入N个员工,每个员工输出ID号,上班时间,下班时间,第一行输出 最早去的员工的ID和上班时间第二行输出 最迟走的员工的ID和下班时间第三行输出 工作最久的员工的ID和上班时间(数据瞎编的)sample input:ID100001, 07:00:00 17:00:00ID100002, 08:00:00 18:00:00ID100003, 09:00:00 21:00:00sample out:OPEN:ID100001,  07:00:00CLOSE:ID100003,  21:00:00

STAR:ID100003,  12:00:00import java.util.*;

public class Exam2017Num2 {

public static void main(String args[]){

Scanner sc = new Scanner(System.in);

int n=sc.nextInt();

String id;

String comeTime;

String goTime;

int early=0,late=0,max=0;

List employs=new ArrayList<>();

for(int i=0;i

id=sc.next();

comeTime=sc.next();

goTime=sc.next();

Employ employ=new Employ(id,comeTime,goTime);

employs.add(employ);

id=sc.nextLine();

}

for(int i=1;i

if(employs.get(i).getComeTime()

if(employs.get(i).getGoTime()>employs.get(i-1).getComeTime())late=i;

if(employs.get(i).getWorkTime()>employs.get(i-1).getWorkTime())max=i;

}

System.out.println("Early:"+employs.get(early).getId()+" "+employs.get(early).getComeTimeStr());

System.out.println("Late:"+employs.get(late).getId()+" "+employs.get(late).getGoTimeStr());

System.out.println("Max:"+employs.get(max).getId()+" "+employs.get(max).getWorkTimeStr());

}

private static class Employ{

private String id;

private String comeTime;

private String goTime;

Employ(String id,String comeTime,String goTime){

this.id=id;

this.comeTime=comeTime;

this.goTime=goTime;

}

int timeChange(String str){

int time=0;

int sec=0;

for(int i=0;i

if(str.charAt(i)>='0'&&str.charAt(i)<='9'){

time=time*10+Integer.parseInt(String.valueOf(str.charAt(i)));

if(i%2!=0){

sec=sec*60+time;

time=0;

}

}

}

return sec;

}

int getComeTime(){

return timeChange(comeTime);

}

int getGoTime(){

return timeChange(goTime);

}

int getWorkTime(){

return timeChange(goTime)-timeChange(comeTime);

}

String getWorkTimeStr(){

String WorkTimeStr;

int WorkTime=timeChange(goTime)-timeChange(comeTime);

if (WorkTime>=3600){

WorkTimeStr=String.valueOf(WorkTime/3600);

WorkTimeStr=WorkTimeStr+":";

WorkTime=WorkTime%3600;

}

else {

WorkTimeStr="00:";

}

if (WorkTime>60){

WorkTimeStr=String.valueOf(WorkTime/60);

WorkTimeStr=WorkTimeStr+":";

WorkTime=WorkTime%60;

}

else {

WorkTimeStr=WorkTimeStr+"00:";

}

WorkTimeStr=WorkTimeStr+String.format("%02d",WorkTime);

return WorkTimeStr;

}

String getId(){

return id;

}

String getComeTimeStr(){

return comeTime;

}

String getGoTimeStr(){

return goTime;

}

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值