java吧 关注:1,274,116贴子:12,787,237

今天面试遇到了这个问题,大家帮忙给一下完整代码呗,谢谢啦。

只看楼主收藏回复

今天面试遇到了这个问题,大家帮忙给一下完整代码呗,谢谢啦。


IP属地:黑龙江来自iPhone客户端1楼2018-09-19 14:42回复
    还请大家帮忙做一下。


    IP属地:黑龙江来自iPhone客户端2楼2018-09-19 14:52
    回复
      2025-08-15 16:42:52
      广告
      不感兴趣
      开通SVIP免广告
      逻辑是获取输入月份的天数,然后取当月最后一天用Calendar判断是周几,再加个判断不是周一至周五就循环向前一天获取


      IP属地:北京3楼2018-09-19 15:14
      回复(2)
        编程题考验的是你编程的逻辑,而不是让你背代码


        IP属地:北京4楼2018-09-19 15:15
        回复
          大概的逻辑差不多,就是写代码不知道怎么写


          IP属地:黑龙江来自iPhone客户端5楼2018-09-19 15:18
          回复
            哪位大神 现在有时间帮忙看一下被


            IP属地:黑龙江6楼2018-09-19 15:35
            回复
              根据楼上老哥的提示,我写出了这些,不一定是最好的,仅供参考!!!
              public static int getWorkingDay(int month) {
              int day = 0;//返回该月份最后一个工作日为几号,如果返回为0说明输入月份不正确
              int week = 1;//该月最后一天为星期几
              if(month <= 12) {
              Calendar cal = Calendar.getInstance();
              //设置年份
              cal.set(Calendar.YEAR,2016);
              //设置月份
              cal.set(Calendar.MONTH, month-1);
              //获取某月最大天数
              int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
              //设置日历中月份的最大天数
              cal.set(Calendar.DAY_OF_MONTH, lastDay);
              week=cal.get(Calendar.DAY_OF_WEEK)-1==0?7:cal.get(Calendar.DAY_OF_WEEK)-1;//判断最后一天为周几
              SimpleDateFormat sdf = new SimpleDateFormat("dd");
              String days = sdf.format(cal.getTime());
              if(week == 6) {
              day = Integer.parseInt(days)-1;
              }else if(week == 7) {
              day = Integer.parseInt(days)-2;
              }else {
              day = Integer.parseInt(days);
              }
              }else {
              System.out.println("输入月份不正确!");
              }
              return day;
              }


              IP属地:黑龙江7楼2018-09-19 16:33
              回复
                谢谢,谢谢


                IP属地:黑龙江来自iPhone客户端8楼2018-09-19 20:06
                回复
                  2025-08-15 16:36:52
                  广告
                  不感兴趣
                  开通SVIP免广告
                  不是你算,算的东西交给机器


                  来自Android客户端9楼2018-09-19 20:08
                  回复
                    测试结果
                    1月29
                    2月29
                    3月31
                    4月29
                    5月31
                    6月30
                    7月29
                    8月31
                    9月30
                    10月31
                    11月30
                    12月30


                    IP属地:上海11楼2018-09-20 00:31
                    回复
                      public static int getWorkingDay(int month){
                      if (1<=month&&month<=12){
                      Calendar cal = Calendar.getInstance();
                      cal.set(2016,month,1);
                      cal.add(Calendar.DATE,-1);
                      int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
                      if (dayOfWeek==7){
                      cal.add(Calendar.DATE,-1);
                      }else if (dayOfWeek==1){
                      cal.add(Calendar.DATE,-2);
                      }
                      return cal.get(Calendar.DATE);
                      }else {
                      throw new IllegalArgumentException("月份有误!");
                      }
                      }


                      IP属地:上海来自iPhone客户端12楼2018-09-20 00:38
                      回复
                        首先,找规律


                        IP属地:重庆来自Android客户端13楼2018-09-20 14:58
                        回复
                          你写个hash 一年365对应星期几。然后看下月份就好了


                          来自Android客户端14楼2018-09-20 17:24
                          回复
                            或则直接查手机,然后cout


                            来自Android客户端15楼2018-09-20 17:25
                            回复
                              2025-08-15 16:30:52
                              广告
                              不感兴趣
                              开通SVIP免广告
                              题目既然给你2016年1月1号是星期五,就直接按他给的推算,没必要读日历


                              IP属地:山东来自Android客户端16楼2018-09-20 21:03
                              回复(5)