兩個時間段四個時間點,相當(dāng)于時間軸上的兩條線段(b代表起點,e代表端點,b=e)和4個端點。
創(chuàng)新互聯(lián)一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個客戶多一個朋友!為您提供網(wǎng)站設(shè)計、成都網(wǎng)站設(shè)計、成都網(wǎng)頁設(shè)計、成都小程序開發(fā)、成都網(wǎng)站開發(fā)、成都網(wǎng)站制作、成都軟件開發(fā)、成都app軟件開發(fā)公司是成都本地專業(yè)的網(wǎng)站建設(shè)和網(wǎng)站設(shè)計公司,等你一起來見證!
可分3種情況:
1.不相交。(b1-----e1)【b2-----e2】(b1-----e1)。if(e1b2||b1e2)此時,重合天數(shù)為零。
2.相交。
情況一:(b1---【b2---e1)----e2】 if(b1b2e1e2e1b2)
情況二:【b2---(b1---e2】----e1) if(b1b2b1e2e2e1)
3.包含:計算較短的時間段日期長度。
(b1---【b2-----e2】--e1) if(b1b2e1e2)
【b2---(b1-----e1)--e2】 if(b1b2e1e2)
實現(xiàn)代碼如下:
[java] view plaincopy
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* @author skysnow
*
*/
public class myDateUtil {
/**
*這里共有2個時間段(b1-----e1)【b2-----e2】,4個時間點;
*相當(dāng)于兩條線段(b代表起點,e代表端點,b=e),4個端點。
*可分3種情況:
*1.不相交。(b1-----e1)【b2-----e2】(b1-----e1)。if(e1b2||b1e2)此時,重合天數(shù)為零。
*2.相交。
*情況一:(b1---【b2---e1)----e2】 if(b1b2e1e2e1b2)
*情況二:【b2---(b1---e2】----e1) if(b1b2b1e2e2e1)
*3.包含:計算較短的時間段日期長度。
*(b1---【b2-----e2】--e1) if(b1b2e1e2)
*【b2---(b1-----e1)--e2】 if(b1b2e1e2)
* @param begindate1 開始日期
* @param enddate1 結(jié)束日期
* @param begindate2開始日期
* @param enddate2 結(jié)束日期
* @return
*/
public static String getDayCoincidence(Date begindate1,Date enddate1,Date begindate2,Date enddate2){
long b1=begindate1.getTime();
long e1=enddate1.getTime();
long b2=begindate2.getTime();
long e2=enddate2.getTime();
assert(b1e1b2e2);
String coincidenceday;
if(b1=b2e1=e2){//(b1---【b2-----e2】--e1)
System.out.println("1包含2");
coincidenceday=getDayDifference(enddate2,begindate2);
}else if(b1=b2e1=e2){//【b2---(b1-----e1)--e2】
System.out.println("2包含1");
coincidenceday=getDayDifference(enddate1,begindate1);
}else if(b1=b2b1=e2e2=e1){//【b2---(b1---e2】----e1)
System.out.println("相交");
coincidenceday=getDayDifference(enddate2,begindate1);
}else if(b1=b2e1=e2e1=b2){//(b1---【b2---e1)----e2】
System.out.println("相交");
coincidenceday=getDayDifference(enddate1,begindate2);
}else if(e1=b2||b1=e2){
coincidenceday="0";
}else{
coincidenceday="";
System.out.println("意料外的日期組合,無法計算重合天數(shù)!");
}
System.out.println("重合天數(shù)為["+coincidenceday+"]天。");
return coincidenceday;
}
/**
* 計算兩個日期的相差天數(shù)(d1-d2)
* @param d1
* @param d2
* @return
*/
public static String getDayDifference(Date d1,Date d2){
StringBuffer ds = new StringBuffer();
try{
long num = (d1.getTime()-d2.getTime())/1000;
long days = num/(3600*24);
if(days=0)ds.append(days);
}catch(Exception e){
ds=new StringBuffer("");
e.printStackTrace();
}
return ds.toString();
}
public static Date stringToDate(String strDate) {
if (strDate==null){return null;}
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
ParsePosition pos = new ParsePosition(0);
Date strtodate = formatter.parse(strDate, pos);
return strtodate;
}
public static String getThisMonth()
{
// 本月的第一天
Calendar calendar = new GregorianCalendar();
calendar.set(Calendar.DATE, 1);
SimpleDateFormat simpleFormate = new SimpleDateFormat("yyyy-MM-dd");
String fd = simpleFormate.format(calendar.getTime());
// 本月的最后一天
calendar.set( Calendar.DATE, 1 );
calendar.roll(Calendar.DATE, - 1 );
String ld = simpleFormate.format(calendar.getTime());
return fd+","+ld;
}
public static void main(String[] args) {
String[] thisMonth=getThisMonth().split(",");
Date begindate1 = stringToDate(thisMonth[0]+" 00:05:00");
Date enddate1 = stringToDate(thisMonth[0]+" 24:05:00");;
Date begindate2 = stringToDate(thisMonth[0]+" 00:05:00");
Date enddate2 = stringToDate(thisMonth[1]+" 00:00:00");
System.out.println(getDayCoincidence(begindate1, enddate1, begindate2, enddate2));
}
}
import?java.text.SimpleDateFormat;
import?java.util.Calendar;
import?java.util.Date;
public?class?WhatTest?{
public?static?void?main(String[]?args)?{
Calendar?cal?=?Calendar.getInstance();
Date?now?=?cal.getTime();
cal.add(Calendar.MONTH,?-1);
SimpleDateFormat?sdf?=?new?SimpleDateFormat("yyyy-MM-dd?00:00:00---yyyy-MM-dd?23:59:59");
while?(cal.getTime().before(now))?{
System.out.println(sdf.format(cal.getTime()));
cal.add(Calendar.DAY_OF_YEAR,?1);
}
}
}
你可以用一個字符串類型的數(shù)組將13節(jié)存入其中,然后循環(huán)比較。比較的時候要將字條串用split(“-”)先分割開,再分別轉(zhuǎn)為Date類型。假如d1是起始時間,d2是結(jié)束時間,當(dāng)前時間是d3,d3.after(d1)為true,d3.before(d2)為true時,當(dāng)前時間就是這一節(jié)中,循環(huán)變量i+1是第幾節(jié)。
望采納
以下是實現(xiàn)方法:我只舉了三個時間段
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);//當(dāng)前時間
Date startDate = sdf.parse(dateArr[0]);//每節(jié)開始時間
Date endDate = sdf.parse(dateArr[1]);//每節(jié)結(jié)束時間
if(currDate.after(startDate) currDate.before(endDate)){
System.out.println("當(dāng)前時間屬于第"+(i+1)+"節(jié)");
}
} catch (ParseException e) {
e.printStackTrace();
}
}
}
private?Shape?rect;????????????//背景矩形
private?Font?font;????????????//設(shè)置字體
private?Date?date;????????????//現(xiàn)在的時間
private?Thread?time;????????//時間線程
private?CanvasPanel?canvas;
public?static?void?main(String[]?args)?{
new?TimerTest20140930();
}
public?TimerTest20140930(){
super("繪制文本");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400,300);
rect?=?new?Rectangle2D.Double(10,10,200,100);
font?=?new?Font("宋體",Font.BOLD,16);
canvas=new?CanvasPanel();
add(canvas);
time?=?new?Thread(new?Runnable(){
public?void?run(){
while(true){
canvas.repaint();
try{
Thread.sleep(1000);
}catch(Exception?ex){
}
}
}
});
time.start();
setLocationRelativeTo(null);
setVisible(true);
}??
class?CanvasPanel?extends?Canvas?{
public?void?paint(Graphics?g){
super.paint(g);
Graphics2D?g2?=?(Graphics2D)?g;
g2.setColor(Color.BLACK);
g2.fill(rect);
g2.setColor(Color.BLUE);
g2.setFont(font);
g2.drawString("現(xiàn)在的時間是",?20,?30);
date?=?new?Date();
g2.drawString(String.format("%tr",?date),?50,?60);???????
}
}
public class Test1 {
public static void main(String[] args) {
// java 代碼如何獲取當(dāng)前時間的上一個月的月末時間..
Calendar cal = Calendar.getInstance();
// 設(shè)置天數(shù)為-1天,表示當(dāng)月減一天即為上一個月的月末時間
cal.set(Calendar.DAY_OF_MONTH, -1);
//格式化輸出年月日
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd 00:00:00");
System.out.println(sdf.format(cal.getTime()));
}
}
猜數(shù),電腦隨機產(chǎn)生一個1-10之間的數(shù),你來猜是幾,猜中后,輸入n或n退出,其他繼續(xù)猜。
public
static
int
getintinrange(string
prompt)方法
輸入一個1-10之間的數(shù),如果不在這個范圍,重新輸入
網(wǎng)站題目:時間段的java代碼 java中時間
鏈接分享:http://www.rwnh.cn/article18/doohgdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、微信小程序、虛擬主機、企業(yè)網(wǎng)站制作、建站公司、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)