## 给定两个时间(Timestamp)，返回时段总天数——java 原

Z
Zoe_2016

``````/**
* The number of times crossed.
*
* @param startTime
*            The start time of period.
* @param endTime
*            The end time of period.
* @return sub of day.
*/
public int subtractDay(Timestamp startTime, Timestamp endTime) {
int result;
if (getYear(startTime) == getYear(endTime)) {
result = subtractDayOfSameYear(startTime, endTime);
} else {
result = subtractDayOfDifferentYear(startTime, endTime);
}
return result;
}``````
``````/**
* Get the number of day from start to end time.(startTime.year !=
* endTime.year)
*
* @param startTime
*            The start time of period.
* @param endTime
*            The end time of period.
* @return The days.
*/
public int subtractDayOfDifferentYear(Timestamp startTime, Timestamp endTime) {
int result = 0;
Timestamp t1 = new Timestamp(0);
Timestamp t2 = new Timestamp(0);
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
int year1 = getYear(startTime);
int year2 = getYear(endTime);
int month1 = getMonth(startTime);
int month2 = getMonth(endTime);
int firstTotalDayOfMonth;
if (year1 == year2) {
System.out.println("ERROR: Pleace use different year!!!");
return -1;
} else {
c1.set(year1, month1 - 1, getDay(startTime), 0, 0, 0);
firstTotalDayOfMonth = c1.getActualMaximum(c1.DATE);
c2.set(year1, month1 - 1, firstTotalDayOfMonth, 0, 0, 0);
t1.setTime(c1.getTimeInMillis());
t2.setTime(c2.getTimeInMillis());
result += subtractDayOfSameYear(t1, t2);
// bottom:
c1.set(year2, month2 - 1, 1, 0, 0, 0);
c2.set(year2, month2 - 1, getDay(endTime), 0, 0, 0);
t1.setTime(c1.getTimeInMillis());
t2.setTime(c2.getTimeInMillis());
result += subtractDayOfSameYear(t1, t2) + 1;
// Middle:
if (year2 - year1 > 1) {
for (int i = 1; i < year2 - year1; i++) {
c1.set(year1, month1 + i - 1, 1, 0, 0, 0);
result += c1.getActualMaximum(c1.DAY_OF_YEAR);
}
}
}
return result;
}``````
``````/**
* Get the number of day from startTime to endTime(startTime.year =
* endTime.year)
*
* @param startTime
*            The start time of time period.
* @param endTime
*            The end time of time period.
* @return The days.
*/
public int subtractDayOfSameYear(Timestamp startTime, Timestamp endTime) {
Calendar cal = Calendar.getInstance();
int year1 = getYear(startTime);
if (year1 != getYear(endTime)) {
System.out.println("ERROR: The time is not the same year!!!");
return -1;
}
int day1 = getDay(startTime);
int day2 = getDay(endTime);
int month1 = getMonth(startTime);
int month2 = getMonth(endTime);
int result;
if (month2 == month1) {
result = day2 - day1;
//			System.out.println(month1 + " " + month2 + " " + day1 + " " + day2 + " result:" + result);
} else {
cal.set(year1, month1 - 1, day1, 0, 0, 0);
result = cal.getActualMaximum(cal.DATE) - day1;
result += day2;
if (month2 - month1 > 1) {
for (int i = 1; i < month2 - month1; i++) {
cal.set(year1, month1 + i - 1, 1, 0, 0, 0);
result += cal.getActualMaximum(cal.DATE);
}
}
}
return result;
}``````

Z

### Zoe_2016

201709记录(elasticsearch)

1 Easy Go Programming Setup for Windows http://www.wadewegner.com/2014/12/easy-go-programming-setup-for-windows/ 2 本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序......

bapleliu
2017/09/01
3
0
MySQL的FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别

Unix时间戳(Unix timestamp)，是一种时间表示方式，定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。 在MySQL中如何格式化时间戳？ 在mysql中因为timestamp无法支持到毫秒...

2012/09/26
11.6K
0
java和mysql之间的时间日期类型传递

mysql（版本：5.1.50）的时间日期类型如下： datetime 8bytes xxxx-xx-xx xx:xx:xx 1000-01-01 00:00:00到9999-12-31 23:59:59 timestamp 4bytes xxxx-xx-xx xx:xx:xx 1970-01-01 00:00:01到......

2017/10/31
50
0
Java 8时间和日期API 20例

2015/06/19
460
0

JDBC，即 Java™ Database Connectivity 是 JDK 中最常用的包之一，但是只有极少数开发人员能够充分使用其完整的 — 或最新的 — 功能。Ted Neward 提供了像 这样的最新 JDBC 功能，可以在系...

2010/09/26
483
3

rime设置为默认简体

zhenruyan

5
0

1. TCP流量控制 流量控制就是让发送方的发送速率不要太快，要让接收方来的及接收。 原理是通过确认报文中窗口字段来控制发送方的发送速率，发送方的发送窗口大小不能超过接收方给出窗口大小。...

9
0
OSChina 周日乱弹 —— 别问，问就是没空

Osc乱弹歌单（2019）请戳（这里） 【今日歌曲】 @tom_tdhzz ：#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌，请使劲儿戳（这里） @wqp0010 :周...

929
11
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

5
0
Spring Context 你真的懂了吗

Java知其所以然

7
0