「时段分割java」时间日期分割线

博主:adminadmin 2022-12-06 01:12:07 71

今天给各位分享时段分割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的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-06,除非注明,否则均为首码项目网原创文章,转载请注明出处。