## Monday, January 25, 2016

### VMware coding Challenge：Date of Weekday

VMware coding Challenge：Date of Weekday

``` 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     }```

``` 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     }```