这道题再次证明了这种细节的题目,画个图容易搞清楚

 import java.util.Scanner;

 public class Solution2 {
static int DateOfWeekday(int date, int weekday) {
int cur = date%7;
int res = 0;
int dif = 0;
if (weekday > 0) {
dif = 7*((weekday-1)/7) + (weekday%7-cur>0? weekday%7-cur : 7-(cur-weekday%7));
res = date + dif;
}
else if (weekday < 0){
weekday = Math.abs(weekday);
dif = 7*((weekday-1)/7) + (cur-weekday%7>0? cur-weekday%7 : 7-(weekday%7-cur));
res = date - dif;
}
else res = date;
return res;
} public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int res;
int _date;
_date = Integer.parseInt(in.nextLine()); int _weekday;
_weekday = Integer.parseInt(in.nextLine()); res = DateOfWeekday(_date, _weekday);
System.out.println(res);
} }
     static int DateOfWeekday(int date, int weekday) {
int cur = date % 7;
int res;
if (weekday == 0) return date;
else if (weekday > 0) {
if (weekday % 7 > cur) res = date + weekday % 7 - cur;
else res = date + 7 - (cur - weekday % 7);
res = res + 7*((weekday-1)/7);
}
else {
if (Math.abs(weekday % 7)<cur) res= date - cur - weekday % 7;
else res = date - 7 - cur - weekday%7;
res = res - 7*((Math.abs(weekday)-1)/7);
}
return res;
}

VMware coding Challenge:Date of Weekday的更多相关文章

  1. VMware Coding Challenge: Possible Scores && Summary: static

    Combination Sum I 那道题的变体 /* * Complete the function below. */ static int is_score_possible(int score ...

  2. VMware coding Challenge

    思路:这道题要观察,举个例子,1 2 * * 3 * 4  5 * * 6 7 * 8 * *, 用Stack,先序遍历,遇到数字就入栈,如果遇到 * *,说明栈顶节点是叶子节点,一条根到叶子的路径这 ...

  3. VMware Coding Challenge: The Heist

    类似BackpackII问题 static int maximize_loot(int[] gold, int[] silver) { int[][] res = new int[gold.lengt ...

  4. VMware Coding Challenge: Removing Duplicates Entries

    static LinkedListNode removeDuplicates(LinkedListNode list) { LinkedListNode cur = list; HashSet< ...

  5. VMware coding Challenge: Coin Toss Betting

    static int CoinTossEndAmount(int betAmount, String coinTossResults) { if (betAmount <=0 || coinTo ...

  6. Linux命令学习总结:date命令

    命令简介: date 根据给定格式显示日期或设置系统日期时间.print or set the system date and time 指令所在路径:/bin/date 命令语法: date [OP ...

  7. Linux命令学习总结:date命令【转】

    本文转自:http://www.cnblogs.com/kerrycode/p/3427617.html 命令简介: date 根据给定格式显示日期或设置系统日期时间.print or set the ...

  8. 每天一个linux命令(37):date命令

    在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. 1.命令格式: date [参数 ...

  9. 原生JS:Date对象详细参考

    Date对象:基于1970年1月1日(世界标准时间)起的毫秒数 本文参考MDN做的详细整理,方便大家参考MDN 构造函数: new Date(); 依据系统设置的当前时间来创建一个Date对象. ne ...

随机推荐

  1. SpringMVC温故知新

    1. SpringMVC流程简记 (1) 用户发送请求至前端控制器DispatcherServlet (2) DispatcherServlet收到请求调用HandlerMapping处理器映射器 ( ...

  2. JVM学习--开启应用的gc日志功能

    一.开启方法 For Java 1.4, 5, 6, 7, 8 pass this JVM argument to your application: -XX:+PrintGCDetails -XX: ...

  3. VS2003安装Opencv1.0 windows系统 win7

    一.步骤 下载安装opencv1.0     安装文件我上传到百度网盘分享连接 http://pan.baidu.com/s/1o8na0aA 配置电脑windows环境变量 配置VS2003全局设置 ...

  4. 安装pod

    1.ruby升级最新 sudo gem update -n /usr/local/bin --system 2. $ gem sources *** CURRENT SOURCES *** https ...

  5. ios三张图片组合一张

    - (UIImage *)addImage:(UIImage *)image1 toImage:(UIImage *)image2 { UIGraphicsBeginImageContext(imag ...

  6. spring配置多视图解析器

    最近做一个小项目(移动端),自己搭了个简单的SSM框架(spring + spring MVC + Mybitis),展示层本来选用的是jsp,各方便都已经搭建好,结果发现有些页面需要用到H5的一些功 ...

  7. iOS8新特性(2)——UIPopoverController和UIPresentationController

    一.以往使用 UIPopoverController 都是只在iPad上使用 /** * UIPopoverController 只能用于iPad,上,iPhone上使用会崩溃 */ -(void)o ...

  8. 关于python的【if __name__ == "__main__":】

    学习东西真的需要自己动手,然后遇到问题,自己学着去解决.当然如果能得到高人指点,那真是走了八辈子运了.可以节省很多时间.但是大多数情况下,不能总是有高人来指点我们.这时就需要靠我们自己了. 在学习py ...

  9. 利用javascript判断文件是否存在

    1 判断本地文件是否存在 var fso,s=filespec; // filespec="C:/path/myfile.txt" fso=new ActiveXObject(&q ...

  10. 高盛为什么认为中国AI领域将超越美国?

    不久前,高盛发布的名为<中国在人工智能领域崛起>的研究报告,报告中,高盛认为中国已经成为AI领域的主要竞争者,中国政府建设“智慧型经济”和“智慧社会”的目标将有可能推动中国未来GDP的增长 ...