「时段分割java」时间日期分割线
今天给各位分享时段分割java的知识,其中也会对时间日期分割线进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java 有一个年月形式的时间段,给出一个月份,求分成的两个时间段
- 2、如何用java实现将一天的7:30-22:05按照下面的时间段分成13段,判断当前时间在哪一段时间里?
- 3、任意一个起止时间段(如:20160101-20161009),用java将这个时间段拆分成一个个按自然周组成的时间段
- 4、java写算法,多个时间段,去掉重复之后的时间差(小时)
java 有一个年月形式的时间段,给出一个月份,求分成的两个时间段
//你可以运行一下试试,我运行没问题
import java.text.*;
import java.util.*;
public class TimeConvert {
public static void main(String[] args){
String start="200906";
String end="201107";
String center="200912";
//调用分开日期的方法
splitTime(start,end,center);
}
private static void splitTime(String start,String end,String center){
//日期必须满足startcenterend
if(start.compareTo(center)0¢er.compareTo(end)0){
//当转换出现异常时不满足日期格式
try {
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyyMM");
//center 转化为Date类型
Date centerDate=simpleDateFormat.parse(center);
Calendar cal=Calendar.getInstance();
cal.setTime(centerDate);
//日期向前移动一个月
cal.add(Calendar.MONTH, -1);
System.out.println(start+"-"+simpleDateFormat.format(cal.getTime()));
//由于之前日期向前移动一个月,所以在此向后移动两个月
cal.add(Calendar.MONTH, 2);
System.out.println(simpleDateFormat.format(cal.getTime())+"-"+end);
} catch (ParseException e) {
System.out.println("输入的日期有错误!");
}
}else{
System.out.println("输入的日期有错误!");
}
}
}
如何用java实现将一天的7:30-22:05按照下面的时间段分成13段,判断当前时间在哪一段时间里?
你可以用一个字符串类型的数组将13节存入其中,然后循环比较。比较的时候要将字条串用split(“-”)先分割开,再分别转为Date类型。假如d1是起始时间,d2是结束时间,当前时间是d3,d3.after(d1)为true,d3.before(d2)为true时,当前时间就是这一节中,循环变量i+1是第几节。
望采纳
以下是实现方法:我只举了三个时间段
String[] dates = new String[3];
dates[0] = "1:00-8:00";
dates[1] = "8:00-16:00";
dates[2] = "16:00-24:00";
for (int i = 0; i dates.length; i++) {
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
String currentDate = sdf.format(new Date());
String dateStr = dates[i];
String[] dateArr = dateStr.split("-");
try {
Date currDate = sdf.parse(currentDate);//当前时间
Date startDate = sdf.parse(dateArr[0]);//每节开始时间
Date endDate = sdf.parse(dateArr[1]);//每节结束时间
if(currDate.after(startDate) currDate.before(endDate)){
System.out.println("当前时间属于第"+(i+1)+"节");
}
} catch (ParseException e) {
e.printStackTrace();
}
}
}
任意一个起止时间段(如:20160101-20161009),用java将这个时间段拆分成一个个按自然周组成的时间段
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class Week {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdw = new SimpleDateFormat("E");
System.out.println("请输入时间段,格式如:20160101-20161111(不足10位以0补足)");
Scanner s = new Scanner(System.in);
String date = s.next();
String begin_date = date.split("-")[0];
String end_date = date.split("-")[1];
String begin_date_fm = begin_date.substring(0, 4) + "-" + begin_date.substring(5,6) + "-" + begin_date.substring(7,8);
String end_date_fm = end_date.substring(0, 4) + "-" + end_date.substring(5,6) + "-" + end_date.substring(7,8);
Date b = null;
Date e = null;
try {
b = sd.parse(begin_date_fm);
e = sd.parse(end_date_fm);
} catch (ParseException ee) {
ee.printStackTrace();
}
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(b);
Date time = b;
String year = begin_date_fm.split("-")[0];
String mon = Integer.parseInt(begin_date_fm.split("-")[1])10?"0"+begin_date_fm.split("-")[1]:begin_date_fm.split("-")[1];
String day = Integer.parseInt(begin_date_fm.split("-")[2])10?"0"+begin_date_fm.split("-")[2]:begin_date_fm.split("-")[2];
String timeb = year+mon+day;
String timee = null;
while(time.getTime()=e.getTime()){
rightNow.add(Calendar.DAY_OF_YEAR,1);
time = sd.parse(sd.format(rightNow.getTime()));
String timew = sdw.format(time);
if(("星期一").equals(timew)){
timeb = (sd.format(time)).replaceAll("-", "");
}
if(("星期日").equals(timew) || ("星期七").equals(timew) || time.getTime() == e.getTime()){
timee = (sd.format(time)).replaceAll("-", "");
System.out.println(timeb+"-"+timee);
}
}
}
}
java写算法,多个时间段,去掉重复之后的时间差(小时)
用文字表达一下算法思路吧
考虑到时间可能不是整点,让算法更兼容,这里统一将时间转换成基于00:00的精度到分的时间戳;
即07:00 = 7 * 60 = 420,10:00 = 10 * 60 = 600;
导入第一组工时数据
转换成时间戳,两个为一组
将连续的时间段存入数组
导入第N组工时数据并转换成时间戳
将第N组开工时间戳和收工时间戳和数组中的连续时间段进行比较
根据比较结果维护连续时间段的数组
根据数组计算出结果或者在循环处理数据时直接累加结果
时段分割java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于时间日期分割线、时段分割java的信息别忘了在本站进行查找喔。
发布于:2022-12-06,除非注明,否则均为
原创文章,转载请注明出处。