用Java算算什么时候邂逅女神——Java练习题

练习题:
今天你在医院遇到小张,她是一名美女护士,你对她一见钟情要想追求她。于是想要算清楚她上下班的时间,设计“巧遇”的场景。
多方打听后,你了解到小张并且从她2018年7月5日入职后上班很有规律从不违背。她上班规律是:两天夜班,休息一天,三天白班,休息一天。
而今天公司通知你被外派出差46天,回来的车票到站是中午1点钟。
请问你要哪天才能邂逅你的女神?(休息就不能去偶遇)

解题思路:

  •  1.先得到出差回来后的日期。
    
  •  2.根据那天日期和小张入职日期,算出之间相隔的天数
    
  •  3.根据小张上班的规律,来得到那天上班的情况。
    
  •  4.判断是否能够邂逅女神。
    
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Doctor {
   public static void main(String[] args) throws ParseException {
       //获取今天的时间
       Calendar calendar = Calendar.getInstance();

       //计算45天之后的时间
       calendar.add(Calendar.DAY_OF_MONTH,46);

       //创建SimpleDateFormat对象,写入格式
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");

       //获得时间字符串
       String time = calendar.get(Calendar.YEAR)+"年"+(calendar.get(Calendar.MONTH)+1)+"月"+calendar.get(Calendar.DAY_OF_MONTH)+"日";


       //传入当前时间和入职时间
       Date entryTime = sdf.parse("2018年7月5日");
       Date dayTime = sdf.parse(time);//2020-12-12

       //求出间隔时间
       long d1 = ((dayTime.getTime()-entryTime.getTime())/1000/60/60/24);


       //小张上班的规律是7天一轮回,间隔时间对七取余
       int x = (int) d1%7 ;
       System.out.println(x);

       //通过判断x值,来确定当天小张的上班不能情况
       switch (x){
           case 1://夜班
           case 2://夜班
           case 4://白班
           case 5://白班
           case 6://白班
               System.out.println("邂逅女神日期是:"+time);
               break;
           case 3://休息
           case 0://休息
               time = calendar.get(Calendar.YEAR)+"年"+(calendar.get(Calendar.MONTH)+1)+"月"+(calendar.get(Calendar.DAY_OF_MONTH)+1)+"日";
               System.out.println("邂逅女神日期是:"+time);
       }
   }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值