1. 程式人生 > >Java 時間(日期)相加處理

Java 時間(日期)相加處理

/**
 * 
 * 
 * 在程式中,經常要對時間進行操作,但是並沒有時間型別的資料。那麼,我們可以自己實現一個時間類,來滿足程式中的需要。
 * 定義名為MyTime的類,其中應有三個整型成員:時(hour),分(minute),秒(second)
 * 

 * 為MyTime類新增以下方法: 

 *     (1).diaplay() 列印時、分、秒 

 *(2).addSecond(int sec) 對秒進行加運算。

 *     (3).addMinute(int min) 對分進行加運算。 

 *     (4).addHour(int hou) 對時進行加運算。

 *     (5).subSecond(int sec) 對秒進行減運算。 

 *   (6).subMinute(int min) 對分進行減運算。

 *     (7).subHour(int hou) 對時進行減運算。

 */

class MyTime {
	private int hour;
	private int minute;
	private int second;

	public MyTime(int hour, int minute, int second) {
		this.hour = hour;
		this.minute = minute;
		this.second = second;
	}

	public void setHour(int hour) {
		this.hour = hour;
	}

	public void setMinute(int minute) {
		this.minute = minute;
	}

	public void setSecond(int second) {
		this.second = second;
	}

	public int getHour() {
		return this.hour;
	}

	public int getMinute() {
		return this.minute;
	}

	public int getSecond() {
		return this.second;
	}

	// (1).diaplay() 列印時、分、秒
	public void diaplay() {
		String HH;
		String MM;
		String SS;
		if(this.hour < 10) {
			 HH = "0" + this.hour;
		} else {
			 HH = "" +  this.hour;
		}
		if(this.minute < 10) {
			 MM = "0" + this.minute;
		} else {
			 MM = "" +  this.minute;
		}
		if(this.second < 10) {
			 SS = "0" + this.second;
		} else {
		     SS = "" + this.second;
		}
		System.out.println(HH + ":" + MM + ":" + SS);
	}

	// (2).addSecond(int sec) 對秒進行加運算。
	public void addSecond(int sec) {
		int ss = sec % 60;
		int mm = (sec / 60) % 60;
		int hh = sec / (60 * 60);
		if ((this.second + ss) < 60) {
			this.second += ss;
			this.minute += mm;
			if(this.minute > 60) {
				this.minute = this.minute % 60;
				this.hour++;
				this.hour += hh;
				if(this.hour > 24) {
					this.hour = this.hour % 24;
				}
			}
			this.hour += hh;
			if(this.hour > 24 ){
				this.hour = this.hour % 24;
			} 
		} else {
			this.second = (this.second + ss) % 60;
			this.minute++;
			this.minute += mm;
			if(this.minute > 60) {
				this.minute = this.minute % 60;
				this.hour++;
				this.hour += hh;
				if(this.hour > 24) {
					this.hour = this.hour % 24;
				}
			}
			this.hour += hh;
			if(this.hour > 24 ){
				this.hour = this.hour % 24;
			}
		}
		diaplay();
	}

	// (3).addMinute(int min) 對分進行加運算。
	public void addMinute(int min) {
		int mm = min % 60;
		int hh = min /60;
		if ((this.minute + mm) < 60) {
			this.minute += mm;
			this.hour += hh;
			if(this.hour > 24) {
				this.hour = this.hour % 24;
			}
		} else {
			this.minute = (this.minute + mm) % 60;
			this.hour++;
			this.hour += hh;
			if(this.hour > 24) {
				this.hour = this.hour % 24;
			}
		}
		diaplay();
	}

	// (4).addHour(int hou) 對時進行加運算。
	public void addHour(int hou) {
		if ((this.hour + hou) < 24) {
			this.hour += hou;
		} else {
			this.hour = (this.hour + hou) % 24;
		}
		diaplay();
	}

	// (5).subSecond(int sec) 對秒進行減運算。
	public void subSecond(int sec) {
		int ss = sec % 60;
		int mm = (sec / 60) % 60 ;
		int hh = sec / (60 * 60);
		if ((this.second - ss) >= 0) {
			this.second -= ss;
			this.minute -= mm;
			if(this.minute < 0) {
				this.minute = this.minute + 60;
				this.hour--;
				if(this.hour < 0) {
					this.hour += 24;
				}
			}
			this.hour -= hh;
			if(this.hour < 0) {
				this.hour += 24;
			}
		} else {
			this.second = this.second + 60 -ss;
			this.minute--;
			if((this.minute - mm) >= 0) {
				this.minute -= mm;
			} else {
				this.minute = (this.minute + 60 -mm) % 60;
				this.hour--;
				if((this.hour - hh) >= 0) {
					this.hour -= hh;
				} else {
					this.hour = (this.hour  -hh) % 24 + 24;
				}
			}
		}
		diaplay();
	}

	// (6).subMinute(int min) 對分進行減運算。
	public void subMinute(int min) {
		int mm = min % 60;
		int hh = min / 60;
		if ((this.minute - mm) >= 0) {
			this.minute -= mm;
			this.hour -= hh;
			if(this.hour < 0) {
				this.hour = this.hour % 24 + 24;
			}
		} else {
			this.minute = (this.minute + 60 -mm) % 60;
			this.hour--;
			if((this.hour - hh) >= 0) {
				this.hour -= hh;
			} else {
				this.hour = ((this.hour -hh) % 24 + 24) % 24;
			}
		}
		diaplay();
	}

	// (7).subHour(int hou) 對時進行減運算。
	public void subHour(int hou) {
		hou = hou %24;
		if((this.hour - hou) >= 0) {
			this.hour -= hou;
		} else {
			this.hour = (this.hour + 24 -hou) % 24;
		}
		diaplay();
	}
}

public class Example1 {
	public static void main(String[] args) {
		MyTime time = new MyTime(10, 10, 10);
		time.diaplay();
		time.addSecond(15);
		time.addMinute(35);
		time.addHour(15);

		time.subSecond(15);
		time.subMinute(25);
		time.subHour(15);
	}
}


相關推薦

Java 時間(日期)相加處理

/**  *   *   * 在程式中,經常要對時間進行操作,但是並沒有時間型別的資料。那麼,我們可以自己實現一個時間類,來滿足程式中的需要。  * 定義名為MyTime的類,其中應有三個整型成員:時(hour),分(minute),秒(second)  *  * 為MyT

java時間日期處理

創作不易,請勿抄襲,轉載請註明出處。如有疑問,請加微信 wx15151889890,謝謝。 [本文連結:]https://blog.csdn.net/wx740851326/article/details/https://blog.csdn.net/wx740851326/article

Java時間日期格式轉換

當前 所在 monday 獲取時間 第一周 獲取 字符串轉換 處理 last import java.text.*; import java.util.Calendar; public class VeDate { /** * 獲取現在時間 *

Java時間日期格式轉換 轉自:http://www.cnblogs.com/edwardlauxh/archive/2010/03/21/1918615.html

throws 星期四 stat 格式轉換 see blog 一是 取得數據 www Java時間格式轉換大全 import java.text.*; import java.util.Calendar; public class VeDate { /** * 獲取

Java 時間日期整理

序號 set方法 格式 pat tab 整型 col reg chang java.util.Date類 java.util提供了Date類來封裝日期和時間。實例化Date類的兩個構造函數, Date();--當前時間 Date(long millisec);--距離

全面掌握 Java 時間日期 API

Java 日期 API 一直為世猿所詬病,簡陋的 API 以及非執行緒安全等問題, 使得開發非常不便,直到後來 Java 8 的推出才改善了這一問題,Java 8 除了加入 Lambda 表示式以及 Stream 操作等重大特性,另外還針對日期時間操作,在 Joda-Time 等優秀工具包的基礎上引

java時間日期工具類

package com.bigname.common; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date;

Java時間日期類 Date、DateFormat、Calendar類

Date類   日期 import java.util.Date; public class DateDemo { public static void main(String[] args) { Date d = new Date(); //預設當前系統時間 Date d2 =

(轉)java向MySQL插入當前時間的四種方式和java時間日期格式化的幾種方法(案例說明)

轉載地址  https://www.cnblogs.com/zhaotiancheng/p/6413067.html 資料庫操作經常會用到時間,例如start_time,end_time,(在資料庫中是datetime型別,) 對應關係 mys

java時間日期

得到 毫秒 輸出 car EDA 日期加減 日期類 alt main java —— 時間日期類的簡單操作 一、java.util.Date類 獲取系統時間 1 public static void main(String[] args) { 2

java時間,日期,毫秒值,String的相互轉換總結

java時間日期的各種轉換總結以及應用例項 由於工作中經常要用到時間,日期,以及當前時間的毫秒值等 很多時候涉及到了它們之間的相互轉換,今天就好好的總結一下. 首先基本介紹一下java中有關時間,日期的類 1. Date類 裡面的很多方法已經過

Java 8中如何處理日期時間

工廠方法 相同 例如 屬性。 ant arch java 去掉 靜態常量 常有人問我學習一個新庫的最好方式是什麽?我的答案是在實際項目中使用它。項目中有很多真正的需求驅使開發者去發掘並學習新庫。簡單得說就是任務驅動學習探 索。這對Java 8新日期時間API也不例外。我創建

20 個案例教你在 Java 8 中如何處理日期時間?

靜態方法 catch 完全 是把 AD 時間 如何判斷 before .com 前言 前面一篇文章寫了《SimpleDateFormat 如何安全的使用?》, 裏面介紹了 SimpleDateFormat 如何處理日期/時間,以及如何保證線程安全,及其介紹了在 Java

java日期時間處理

1.  /*       * 將時間轉換為時間戳       */        public static String dateToStamp(String

Java中的時間日期處理

日常開發中對時間或者日期處理肯定層出不窮,簡單總結一下Java中時間相關的使用方法。 相關類 Date: Date表示特定的瞬間,精確到毫秒,Date中的相應方法已廢棄,從JDK 1.1開

JAVA日期時間的格式化選項

println 對象 bsp lec pub cti class 日子 月份 一、使用printf方法 1 import java.util.Date; 2 import java.util.Scanner; 3 4 5 public class Test

MySQL:日期函數、時間函數處理(轉)

減少 expr lec datetime style pan 獲取 相減 sel date_add() 增加MYSQL 獲取當前時間加上一個月 update user set leverstart=now(),leverover=date_add(NOW(), int

Java實現時間日期格式轉換示例

simple ati except else ktr new bsp 時間 .text package com.hanqi.util; import java.text.ParseException; import java.text.SimpleDateFormat;

python selenium 處理時間日期控件(十五)

開發 users key 時間控件 java hunk read picker eat 測試過程中經常遇到時間控件,需要我們來選擇日期,一般處理時間控件通過層級定位來操作或者通過調用js來實現。 1.首先我們看一下如何通過層級定位來操作時間控件。 通過示例圖可以看到

Java 8 時間日期庫的20個使用演示樣例

行處理 day data- 替換 獲取當前的年月 靜態方法 2014年 習慣 function 除了lambda表達式,stream以及幾個小的改進之外,Java 8還引入了一套全新的時間日期API,在本篇教程中我們將通