1275: 男神的逆袭

题目

  计算两个日期相差的天数。更多内容点击标题。

分析

  下面说一下我的思路(自己写的,无扩展性):

  1. 给定一个日期,首先计算这个日期是这一年的第多少天。
  2. 给定两个日期,直接比较年份即可,闰年相差366天,平年相差365天,计算出相差的天数。
  3. 然后将两个日期在第一步中算的天数相减。
  4. 将2中和3中得到的天数相加即为结果。

  CSDN上计算日期差的博客有很多,我试了几个都没成功(可能是我写错了,大家可以尝试一下)。个人觉得我的方法比较笨,EMMM,就当练练基础吧(自我安慰QAQ),基础不太好的也可以试试。

代码

/*** 用时:1640ms* @author PengHao* @version A6.1* @date 2019年4月20日 上午10:15:06*/import java.util.Scanner;public class Main {private Scanner sc;private int t, y1, m1, d1, y2, m2, d2; // 输入的数据public Main() {sc = new Scanner(System.in);Date date1, date2;t = sc.nextInt();while ((t--) > 0) {input();date1 = new Date(y1, m1, d1);date2 = new Date(y2, m2, d2);System.out.println(Date.daysBetweenYears(date1, date2));}sc.close();}/*** 输入*/private void input() {y1 = sc.nextInt();m1 = sc.nextInt();d1 = sc.nextInt();y2 = sc.nextInt();m2 = sc.nextInt();d2 = sc.nextInt();}public static void main(String[] args) {new Main();}}/*** 日期类* * @author PengHao* @version A2.0* @date 2019年4月20日 上午10:41:43*/
class Date {/*** @Field daysOfYear 当前日期是这一年的第多少天*/private int year, month, day, daysOfYear;public Date(int year, int month, int day) {this.year = year;this.month = month;this.day = day;daysOfYear = daysOfYear();}/*** @return 当前日期在这一年的第多少天*/private int daysOfYear() {int days = day; // 当月的天数// 月份天数表int[] daysOfMonth = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };// 闰年加1天if (0 == year % 4 && 0 != year % 100 || 0 == year % 400) {daysOfMonth[1]++;}// 前面month-1个月的天数for (int i = 0; i < month - 1; i++) {days += daysOfMonth[i];}return days;}/*** @param d1 第一个日期* @param d2 第二个日期* @return 相差天数*/public static int daysBetweenYears(Date d1, Date d2) {// 同一年,直接返回当年天数的差即可if (d1.year == d2.year) {return Math.abs(d1.daysOfYear - d2.daysOfYear);} else if (d1.year > d2.year) {// 保证d1的年份小于d2的年份Date temp = d1;d1 = d2;d2 = temp;}int days = 0;for (int i = d1.year; i < d2.year; i++) {if (0 == i % 4 && 0 != i % 100 || 0 == i % 400) {days += 366; // 闰年加366} else {days += 365; // 平年加365}}days += d2.daysOfYear - d1.daysOfYear;return days;}}

写在最后:

  1. 如需转载,请于标题下注明链接形式的wowpH的博客即可;
  2. 代码原创,如需公开引用,不能删除首行注释(作者,版本号,时间等信息)。

WUSTOJ 1275: 男神的逆袭(Java)相关推荐

  1. Java学习路线总结,逆袭Java架构师

    本文已经收录到Github仓库,该仓库包含计算机基础.Java基础.多线程.JVM.数据库.Redis.Spring.Mybatis.SpringMVC.SpringBoot.分布式.微服务.设计模式 ...

  2. python程序员现状_天才Python程序员身价上亿却被说挫,6个月减90斤,逆袭成文艺范男神!...

    image 你对程序猿的印象是怎么样? 你所知道的程序员,是一种自嘲为码农的猿类 学习Python中有不明白推荐加入交流群 号:864573496 群里有志同道合的小伙伴,互帮互助, 群里有不错的视频 ...

  3. 天才程序员身价上亿却被说挫,6个月减90斤,逆袭成文艺范男神

    你对程序猿的印象是怎么样? 你所知道的程序员,是一种自嘲为码农的猿类,具备宅.闷骚.随性.不修边幅--的特点. 格子衫.条纹polo.单品T恤.大裤衩.双肩包是他们的穿衣标配- 小哥Kenneth R ...

  4. 我在百度Python小白逆袭大神课程中“打怪”欢乐之旅

          本文描述了作者在参加百度Python小白逆袭大神课程一些亲身经历,从开始的半信半疑,到最后坚定的革命信念,给没有参加过百度课程的同学一点参考,文中有高质量的数据分析.pyecharts动态 ...

  5. 屌丝逆袭高富帅之JAVA之路

    据说学习JAVA可以逆袭高富帅,所以本屌丝来了.一直在想一个问题,电脑上的这个软件.网站是怎么做的.后来,去查资料.是用语言写出来的.哇!写出来的.什么玩意儿写出来的?编程语言.神马是编程语言?这个是 ...

  6. python画饼图_百度飞桨PaddlePaddle之[Python小白逆袭大神]7天训练营

    第三次参加百度的7天训练营了 这次参加的主题是[Python小白逆袭大神],不过你别看是小白逆势...除非你一开始参加就逆袭完,不然你真的是python小白,这个课程还是有难难度的. 说一下个训练营的 ...

  7. 百度飞桨小白逆袭大神之鲤鱼跃龙门

    小白逆袭大神之综合大作业 综合大作业 词云生成器(自己修改) 这里是三岁,转眼间已经到了大作业了,成功与否最后一搏,最后给小白一点建议吧!加油!等到全部结束后回过头再看一遍效果特别好,会发现忽然间恍然 ...

  8. Python小白逆袭大神-结营心得-alading

    Python小白逆袭大神-结营心得 赶在五一前结束的Python小白逆袭大神7天打卡营结束了,经过了7天的练习,我觉得收获还是很多的.经过整理总结,进行分享. 1. 本期培训重点 本期集训营主要是一些 ...

  9. python小白逆袭大神_python小白逆天(3),Python,小白逆袭,大神,三

    Python小白逆袭大神 作业三 作业: 对<青春有你2>对选手体重分布进行可视化,绘制饼状图 这个作业是根据第二天爬取获得的json文件进行数据的处理课可视化. with open('d ...

  10. java学习之屌丝逆袭

    Java学习攻略之视频学习篇 --屌丝逆袭之7K轻松拿 屌丝靓妹,你现在学习java还在抱着一本本学习资料学吗?见过<java编程思想>这本书吧,这本书确实很好,那么厚一本,你真有勇气看下 ...

最新文章

  1. 数列极限---和Gauss(取整)函数有关
  2. vuex 编译项目_俺咋能看懂公司前端项目?
  3. 查找数组中未出现的和出现2次的数值 Set Mismatch
  4. mysql variables 大记录 查询 慢_MySQL - 慢查询
  5. 抽取+生成:一种基于背景知识的参考感知网络对话模型
  6. 深度学习之循环神经网络(3)梯度传播
  7. 图解 深入浅出 JavaWeb:Servlet 再说几句
  8. java web试题_Java web开发经典面试题汇总(内附答案详解)
  9. 微信点餐系统感悟(上1-6章)
  10. 电感式传感器工作原理与电感式传感器应用案例-博扬智能
  11. QR码与DM码的对比
  12. ASP.NET Core (视频)教程汇总
  13. 上周刚号召加班,这周立马双休,董明珠把互联网玩明白了……
  14. 架构师必备!看我如何一步一步攻克面试官,详细解说
  15. 【kettle抽取Orecle/Mysql数据至HDFS】诸如‘\u0001’等特殊分隔符表示法
  16. 微信html 全屏显示,关于微信上网页图片点击全屏放大效果
  17. 页面里的在线实时聊天实现
  18. C/C++编译总结 (Linux下g++、makefile、automake)
  19. ios swift是静态语言吗
  20. HTML5 <a> 标签

热门文章

  1. mysql admin账号密码忘记_使用mysqladmin命令修改Mysql密码与忘记密码
  2. 如何删除ie浏览器缓存文件、缓存js
  3. 技术译文 | MySQL 8 需要多大的 innodb_buffer_pool_instances 值(上)
  4. java软尾山地车评测_GT Sensor X Pro 软尾山地自行车测评
  5. 5G无线技术基础自学系列 | 时域资源
  6. Regular Expression简介
  7. 腾讯云服务器SSH密匙登录教程
  8. 网速/带宽与下载速度对照表
  9. 简单的MCU加密方法,防破解、防抄袭、防山寨
  10. 计算机音乐有哪些优势,谈谈用电脑听无损音乐的好处