`
katouhei
  • 浏览: 11367 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

关于date的一些用法

J# 
阅读更多
private static String DATE_TIME_FORMAT  = "yyyy-MM-dd HH:mm";

private static String DATE_FORMAT  = "yyyy-MM-dd";

private static String DATE_TIME_ONE  = " 09:00";

private static String DATE_TIME_TWO  = " 12:00";

private static String DATE_TIME_THREE  = " 13:00";

private static String DATE_TIME_FOUR  = " 18:00";

//取两个时间差
public String DatePool(String begin, String end) {
SimpleDateFormat strFormat = new SimpleDateFormat(DATE_TIME_FORMAT);
DateFormat format = new SimpleDateFormat(DATE_FORMAT);
Date start = null;
Date back = null;
try {
//先算出开始日有多少小时多少分
Date begTime = strFormat.parse(begin);
Date begDate1 = strFormat.parse(begDate+DATE_TIME_ONE);
Date begDate2 = strFormat.parse(begDate+DATE_TIME_TWO);
Date begDate3 = strFormat.parse(begDate+DATE_TIME_THREE);
Date begDate4 = strFormat.parse(begDate+DATE_TIME_FOUR);

if(begTime.getTime() <= begDate1.getTime()) {
begLong += begDate2.getTime()-begDate1.getTime();
begLong += begDate4.getTime()-begDate3.getTime();
}
if(begTime.getTime() > begDate1.getTime()
&& begTime.getTime() <= begDate2.getTime()) {
begLong += begDate2.getTime()-begTime.getTime();
begLong += begDate4.getTime()-begDate3.getTime();
}
if(begTime.getTime() > begDate2.getTime()
&& begTime.getTime() <= begDate3.getTime()) {
begLong += begDate4.getTime()-begDate3.getTime();
}
if(begTime.getTime() > begDate3.getTime()
&& begTime.getTime() <= begDate4.getTime()) {
begLong += begDate4.getTime()-begTime.getTime();
}

//再算出结束日有多少小时多少分
Date endTime = strFormat.parse(end);
Date endDate1 = strFormat.parse(endDate+DATE_TIME_ONE);
Date endDate2 = strFormat.parse(endDate+DATE_TIME_TWO);
Date endDate3 = strFormat.parse(endDate+DATE_TIME_THREE);
Date endDate4 = strFormat.parse(endDate+DATE_TIME_FOUR);
if(endTime.getTime() >= endDate1.getTime()
&& endTime.getTime() < endDate2.getTime()) {
endLong += endTime.getTime()-endDate1.getTime();
}
if(endTime.getTime() >= endDate2.getTime()
&& endTime.getTime() < endDate3.getTime()) {
endLong += endDate2.getTime()-endDate1.getTime();
}
if(endTime.getTime() >= endDate3.getTime()
&& endTime.getTime() < endDate4.getTime()) {
endLong += endTime.getTime()-endDate3.getTime();
endLong += endDate2.getTime()-endDate1.getTime();
}
if(endTime.getTime() >= endDate4.getTime()) {
endLong += endDate2.getTime()-endDate1.getTime();
endLong += endDate4.getTime()-endDate3.getTime();
}
Long min = ((endLong+begLong)/60/1000)%60;
Long hour = (((endLong+begLong)/60/1000) - min)/60;
//仅开始日和结束日有多少小时多少分
//System.out.println(hour+":"+min);

//然后算开始日和结束日相差多少天
Long day = (back.getTime()-start.getTime())/1000/3600/24-1;
//算出开始日和结束日中间有多少个星期后,还有没有多余的天数,就
Long days = day%7;
//算出开始日和结束日中间有多少个星期
Long weeks = (day - days)/7;
//算出开始日和结束日中间有多少个星期,减去星期六,星期天两天,有几个星期,就乘以2
Long daypool = day-weeks*2l;
Calendar calendar = Calendar.getInstance();
//这个是开始日的星期几calendar.get(Calendar.DAY_OF_WEEK)
calendar.setTime(start);
//System.out.println(calendar.get(Calendar.DAY_OF_WEEK));

Long xweek = 0l;
//现在要计算多余的天数中是否有星期六,星期天
int i = 0;
//星期天到星期六对应的数字是1到7,由于开始日到结束日相差的天数,
//没有包括开始日和结束日,所以相差天数的第一天就是开始日的对应的接下来的星期几
if(calendar.get(Calendar.DAY_OF_WEEK) == 7) {
i = 1;
} else {
i = calendar.get(Calendar.DAY_OF_WEEK) + 1;
}
for(int j = 0; j < days; j++) {
if(i==1 || i==7) {
xweek++;
}
//如果i==7说明到了星期六,则要从星期天开始,就是i=1
if(i == 7) {
i = 1;
} else {
i++;
}
}
return ((daypool-xweek)*8+hour)+":"+min;

} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
分享到:
评论

相关推荐

    bootstrap时间控件daterangepicker使用方法及各种小bug修复

    下面将详细介绍 daterangepicker 的使用方法和一些常见的问题解决方案。 一、daterangepicker 的引用 daterangepicker 依托 moment.js 和 jQuery 使用,因此在使用中需要先引入这两个库。可以使用以下代码引入: `...

    Oracle to_date() 用法细节.txt

    本文将详细介绍 `to_date()` 的使用方法、参数格式以及常见问题解决方法。 #### 二、基本语法与格式 `to_date()` 函数的基本语法如下: ```sql TO_DATE (expression, format_mask) ``` 其中: - `expression`: ...

    Java Date的使用

    根据提供的文件信息,我们可以总结出以下关于Java中Date类及其时间格式化的相关知识点: ### Java Date 类概述 在Java中,`java.util.Date`类表示特定的瞬间,精确到毫秒。该类提供了多种构造方法来创建日期实例,...

    关于PreparedStatement插入Date类型值的方法.txt

    ### 关于PreparedStatement插入Date类型值的方法 在Java编程语言中,使用`PreparedStatement`来执行SQL语句是一种常见的操作数据库的方式。这种方式不仅可以提高程序的性能,还可以有效地防止SQL注入攻击。当我们在...

    linux date基本用法

    对于系统管理员来说,掌握 `date` 命令的使用方法是非常必要的,因为它可以帮助我们更好地管理系统的日期和时间设置,这对于保持系统同步和进行日志记录等任务至关重要。 #### 二、显示当前系统日期和时间 最简单...

    【Java精品】Java中Date各种相关用法.doc

    在Java中,Date类通常与Calendar类一起使用,因为Date类本身并不支持设置和获取具体的时间字段(如年、月、日等),而Calendar类提供了这样的功能。 1. 计算某一月份的最大天数 使用Calendar类的getActualMaximum...

    TO_DATE用法详解.doc

    TO_DATE 函数用法详解 TO_DATE 函数是 Oracle 中的一个重要函数,它用于将字符类型的日期字符串转换为日期类型的数据。该函数的语法为:TO_DATE(date_string, format_string),其中 date_string 是要转换的日期字符...

    常用java date方法集合

    本文将深入探讨“常用Java date方法集合”,这是一份关于`java.util.Date`和`java.util.Calendar`类中常用操作的总结。通过本文,我们将详细了解如何计算特定月份的最大天数、实现`Calendar`与`Date`之间的转换、...

    java 使用Date类获取系统的当前时间

    在这个例子中,我们定义了一个字符串`format`,然后创建了一个`SimpleDateFormat`实例,并使用`format`方法将`Date`对象转换为指定格式的字符串。 需要注意的是,`Date`类在Java 8之后已经被`java.time`包中的新API...

    Web中Date类型解决方法

    - 在这些转换方法中,应该使用`java.util.Date`类型的变量,因为`java.sql.Date`是`java.util.Date`的子类,可以自动赋值给父类。 #### 三、获取当前时间 为了获取当前的时间,可以使用以下方法: ```java import ...

    微信小程序new Date()方法失效问题解决

    在iOS系统中,苹果的Safari浏览器和其他一些环境里,`new Date()`方法对于日期格式的解析有着较为严格的限制。例如,iOS系统中的JavaScript环境默认只支持ISO 8601日期格式(`YYYY-MM-DD`),并且日期和时间之间使用...

    Java 之 Date 和 Calendar 实例

    下面是一些使用`Date`和`Calendar`的实例: 1. 获取当前日期和时间: ```java Date now = new Date(); System.out.println(now.toString()); Calendar calendar = Calendar.getInstance(); System.out.println...

    date_input插件

    **jQuery date_input 日期插件详解** 在网页开发中,日期...在使用 date_input 插件前,你需要确保你的项目中已经引入了 jQuery 库。之后,可以通过以下步骤引入 date_input 插件: ```html &lt;!-- 引入 jQuery --&gt; ...

    date.zip_matlab中date函数

    例如,如果你有一个表示日期的标量值,如`datenum`返回的数值,你可以使用`date`将其转化为常见的日期格式。基本用法如下: ```matlab dateValue = datenum('2022-03-04'); % 将日期字符串转换为datenum格式 ...

    web前端JavaScript DATE 用法思维导图

    web前端JavaScript DATE 用法思维导图,

    js中获取时间new date()的用法.txt

    此外,还有一些其他的方法,例如`setFullYear()`用于设置年份,`setHours()`用于设置小时数等,这些方法可以用于修改`Date`对象的属性。总之,在JavaScript中,`Date`对象提供了一整套强大的工具来处理日期和时间...

    util包里的Date类转换为sql包里的Date

    这个类提供了多种构造函数来创建日期对象,并且还提供了一些方法来获取或设置日期的不同部分,如年、月、日等。例如: ```java Date now = new Date(); // 创建当前时间的Date对象 ``` #### 了解sql包里的Date类 `...

    js date转String 日期字符串转换

    JavaScript中的`Date`对象还提供了一些内置的方法来格式化日期: - `toLocaleDateString()`:返回日期的本地格式字符串。 - `toLocaleTimeString()`:返回时间的本地格式字符串。 - `toLocaleString()`:返回日期和...

Global site tag (gtag.js) - Google Analytics