标签:
这道题再次证明了这种细节的题目,画个图容易搞清楚
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 }
VMware coding Challenge:Date of Weekday
标签:
原文地址:http://www.cnblogs.com/EdwardLiu/p/4303194.html