VMware coding Challenge:Date of Weekday
这道题再次证明了这种细节的题目,画个图容易搞清楚
1 import java.util.Scanner; 2 3 4 public class Solution2 { 5 static int DateOfWeekday(int date, int weekday) { 6 int cur = date%7; 7 int res = 0; 8 int dif = 0; 9 if (weekday > 0) { 10 dif = 7*((weekday-1)/7) + (weekday%7-cur>0? weekday%7-cur : 7-(cur-weekday%7)); 11 res = date + dif; 12 } 13 else if (weekday < 0){ 14 weekday = Math.abs(weekday); 15 dif = 7*((weekday-1)/7) + (cur-weekday%7>0? cur-weekday%7 : 7-(weekday%7-cur)); 16 res = date - dif; 17 } 18 else res = date; 19 return res; 20 } 21 22 public static void main(String[] args) { 23 Scanner in = new Scanner(System.in); 24 int res; 25 int _date; 26 _date = Integer.parseInt(in.nextLine()); 27 28 int _weekday; 29 _weekday = Integer.parseInt(in.nextLine()); 30 31 res = DateOfWeekday(_date, _weekday); 32 System.out.println(res); 33 } 34 35 }
1 static int DateOfWeekday(int date, int weekday) { 2 int cur = date % 7; 3 int res; 4 if (weekday == 0) return date; 5 else if (weekday > 0) { 6 if (weekday % 7 > cur) res = date + weekday % 7 - cur; 7 else res = date + 7 - (cur - weekday % 7); 8 res = res + 7*((weekday-1)/7); 9 } 10 else { 11 if (Math.abs(weekday % 7)<cur) res= date - cur - weekday % 7; 12 else res = date - 7 - cur - weekday%7; 13 res = res - 7*((Math.abs(weekday)-1)/7); 14 } 15 return res; 16 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。