随手写的一个例子, 只是练习下自己的代码布局以及思路..
  1. 先写下简单的测试
  2. 根据常用的不用修改的变量抽取出来, 作为常量(常量的命名可能有点不规范,谅解~)
  3. 方法的作用不一样, 抽取出来做不一样的动作.
  4. 好久没写代码了, 生了... 最近在弄js什么的, 醉了~ 慢慢来吧 ... 就是一个简单的例子,能用就拿走...
  5. 菜鸟代码, 不喜勿喷

/**
* 生命计算
*
* @author Toolo
* @date 2015-07-24
*/
public class Life { public static DateFormat dfmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static final int INT_CONSTANT_SECONDS = 1000;
public static final int INT_CONSTANT_POINTS = 60;
public static final double INT_CONSTANT_HOUR = 60.0;
public static final double INT_CONSTANT_DAY = 24.0;
public static final double INT_CONSTANT_YEAR = 365.0;
public static final double INT_CONSTANT_MONTH = 12.0;
private static long difference; /**
* 方法说明: testMain
*
* @author Toolo
* @date 2015-07-24
* @param args
*/
public static void main(String[] args) {
try {
difference = getTimeDifference("1992-10-22 22:31:40");
} catch (ParseException e) {
System.err.println("时间格式转换错误!");
e.printStackTrace();
}
long second = getTimeSecond(difference);
long points = getTimePoints(second);
double hour = getTimeHour(points);
double day = getTimeDay(hour);
double year = getTimeYear(day);
double month = getTimeMonth(year); System.out.println("我在这个世界上生活了[" + second + "]秒");
System.out.println("我在这个世界上生活了[" + points + "]分");
System.out.println("我在这个世界上生活了[" + hour + "]时");
System.out.println("我在这个世界上生活了[" + day + "]天");
System.out.println("我在这个世界上生活了[" + month + "]月");
System.out.println("我在这个世界上生活了[" + year + "]年");
} /**
* 方法说明: 获取时间差的的月
*
* @author Toolo
* @date 2015-07-24
* @param day
* @return
*/
private static double getTimeMonth(double year) {
return year * INT_CONSTANT_MONTH;
} /**
* 方法说明: 获取时间差的的年
*
* @author Toolo
* @date 2015-07-24
* @param day
* @return
*/
private static double getTimeYear(double day) {
return day / INT_CONSTANT_YEAR;
} /**
* 方法说明: 获取时间差的的天数
*
* @author Toolo
* @date 2015-07-24
* @param hour
* @return
*/
private static double getTimeDay(double hour) {
return hour / INT_CONSTANT_DAY;
} /**
* 方法说明: 获取时间差的的小时
*
* @author Toolo
* @date 2015-07-24
* @param hour
* @return
*/
private static double getTimeHour(double hour) {
return hour / INT_CONSTANT_HOUR;
} /**
* 方法说明: 获取时间差的的分钟
*
* @author Toolo
* @date 2015-07-24
* @param second
* @return
*/
private static long getTimePoints(long second) {
return second / INT_CONSTANT_POINTS;
} /**
* 方法说明: 获取时间差的秒数
*
* @author Toolo
* @date 2015-07-24
* @param difference
* @return
*/
private static long getTimeSecond(long difference) {
return difference / INT_CONSTANT_SECONDS;
} /**
* 方法说明: 获取时间差
*
* @author Toolo
* @date 2015-07-24
* @param longTime
* 要计算的时间
* @return long 时间
* @throws ParseException
*/
private static long getTimeDifference(String longTime) throws ParseException {
Calendar calendar = Calendar.getInstance();
Date d1 = dfmt.parse(longTime);
long nowTime = System.currentTimeMillis();
calendar.setTimeInMillis(nowTime);
System.err.println("现在的北京时间是[" + calendar.getTime() + "]整");
System.err.println("你要计算的时间是[" + d1 + "](阳历)");
return nowTime - d1.getTime();
}
}

【java基础】随手写的一个日期计算,新手可以看看的更多相关文章

  1. Java实现 蓝桥杯 算法提高 日期计算

    算法提高 日期计算 时间限制:1.0s 内存限制:256.0MB 问题描述 已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况.尤其是逢百年不闰,逢400年闰的情 ...

  2. java————数组 简单写出一个管理系统

    数组的特点 1,  数组是一块连续的空间,下标描述空间的位置. 2,  下标从0开始,最大下标为数组长度—1.(*.length-1) 3,  数组元素都是变量.(就是每个下标对应的内容).变量的类型 ...

  3. 随手写的一个检测php连接mysql的小脚本

    最近偶然接触到一点点的php开发,要用到mysql数据库,由于mysql和php版本的关系,php5里面连接函数有mysql_connect(),mysqli_connect()两种,php7中又使用 ...

  4. java基础知识(六)日期处理

    一.日期处理类 在 JDK 1.1 之前,类 Date 有两个其他的函数.它允许把日期解释为年.月.日.小时.分钟和秒值.它也允许格式化和解析日期字符串.不过,这些函数的 API 不易于实现国际化.从 ...

  5. Java基础之写文件——将素数写入文件中(PrimesToFile)

    控制台程序,计算素数.创建文件路径.写文件. import static java.lang.Math.ceil; import static java.lang.Math.sqrt; import ...

  6. Java基础知识强化92:日期工具类的编写和测试案例

    1. DateUtil.java,代码如下: package cn.itcast_04; import java.text.ParseException; import java.text.Simpl ...

  7. JAVA基础学习(1)之计算

    1.0计算机与编程语言 1.0.1计算机与编程语言 计算机解决问题 人:What to do 计算机:How to do 编程语言 描述要求计算机如何做事情的过程或方法 算法 计算=算法—>编程 ...

  8. 【死磕 Java 基础】— 我同事一个 select 分页语句查出来了 3000W 条数据

    大家好,我是大明哥,一个专注于[死磕 Java]系列创作的男人 个人网站:https://www.cmsblogs.com/.专注于 Java 优质系列文章分享,提供一站式 Java 学习资料 某天我 ...

  9. Java基础之写文件——从多个缓冲区写(GatheringWrite)

    控制台程序,使用单个写操作将数据从多个缓冲区按顺序传输到文件,这称为集中写(GatheringWrite)操作.这个功能的优势是能够避免在将信息写入到文件中之前将信息复制到单个缓冲区中.从每个缓冲区写 ...

随机推荐

  1. 架构实战项目心得(六)(补):mongodb.conf参数详解

    --dbpath 数据库路径(数据文件)--logpath 日志文件路径--master 指定为主机器--slave 指定为从机器--source 指定主机器的IP地址--pologSize 指定日志 ...

  2. WPF binding<一> Data Binding在WPF中的地位

    在代码中看到 <Image Source="{Binding ElementName=LBoxImages, Path=SelectedItem.Source}" /> ...

  3. ASP.NET MVC4 新手入门教程之八 ---8.向模式中添加验证

    在这本部分会将验证逻辑添加到Movie模式,和你会确保验证规则执行任何时候用户试图创建或编辑使用该应用程序的一部电影. 保持事物的干练性 ASP.NET MVC 的核心设计信条之一是 DRY(”Don ...

  4. spring mvc如何优雅的使用fastjson

    1. 在spring mvc中配置fastjson <!-- 设置配置方案 --> <mvc:annotation-driven> <!-- 设置不使用默认的消息转换器 ...

  5. Java温故而知新(2)多线程详解

    多线程指的是在单个程序中可以同时运行多个同的线程执行不同的任务.线程是程序内的顺序控制流,只能使用分配给序的资源和环境.     一.线程与进程的区别 多个进程的内部数据和状态都是完全独立的,而多线程 ...

  6. 理解mouseover,mouseout,mouseenter,mouseleave

    mouseover定义和用法 当鼠标指针位于元素上方时,会发生 mouseover 事件. 该事件大多数时候会与 mouseout 事件一起使用. mouseover() 方法触发 mouseover ...

  7. Python-常用模块1

    今天我们来看一看python中的常用的模块,内容有点多,我会分两天来更新这些知识 一.什么是模块 模块就是我们把装有特定功能的代码就行归类的结果,从代码编写的单位来看我们的程序,从小到大的顺序:一条代 ...

  8. SQLServer导入大sql文件报错 对 COM 组件的调用返回了错误 HRESULT E_FAIL。 (mscorlib)

    打开cmd执行(d:\script.sql为sql文件位置):  sqlcmd -S 127.0.0.1 -U sa -P sa -i d:\script.sql    From:https://ww ...

  9. easyui扩展行默认展开 以及 去除滚动条

     问题背景: 在做打印页面的时候,要求有详细的默认展开显示.    遇到的问题: 1)在用扩展行的时候,grid的所有行都添加了展开收起的图标,(第二行没有明细)如下  2)默认展示有详细行的时候,内 ...

  10. (C# 正则表达式)判断匹配, 提取字符串或数值

    string s = "if ( \"ch\" == \"os\" ) "; string pattern = @"if\s*\( ...