今天主要學習的日期操作主要是—–獲取日期字段(年
關於Calendar日歷的字段值
常規的年月日時分秒
static int YEAR
指示年的 get 和 set 的字段數字
static int MONTH
指示月份的 get 和 set 的字段數字
static int DATE
get 和 set 的字段數字
static int HOUR
get 和 set 的字段數字
static int MINUTE
get 和 set 的字段數字
static int SECOND
get 和 set 的字段數字
比較有用的幾個字段
static int DAY_OF_YEAR
get 和 set 的字段數字
static int WEEK_OF_YEAR
get 和 set 的字段數字
static int WEEK_OF_MONTH
get 和 set 的字段數字
static int DAY_OF_WEEK
get 和 set 的字段數字
下面是關於日期計算的測試代碼
/**
* 日期類Date
*
*/
package com
import java
import java
import java
import java
import java
/**
* @author wkupaochuan
* @time Jun
* @version V
*
* 實現的接口如下
*
*
*
*
*
*/
public class Calendar_test {
public static void main(String agrs[])
{
//獲取日歷實例並賦予當前時間
Calendar cNow = Calendar
cNow
//輸出日歷相關字段
printFields(cNow)
/*計算兩個日期的時間間隔*/
//開始時間
Date sDate = new Date()
//結束時間
try {
Date eDate = (new SimpleDateFormat(
//計算結果並輸出
System
} catch (ParseException e) {
// TODO Auto
e
}
/*計算結束日期並輸出*/
SimpleDateFormat df = (SimpleDateFormat)DateFormat
df
System
}
/**
* 根據起始日期和間隔時間計算結束日期
*
* @param sDate開始時間
*
* @param days間隔時間
*
* @return 結束時間
* */
public static Date calculateEndDate(Date sDate
{
//將開始時間賦給日歷實例
Calendar sCalendar = Calendar
sCalendar
//計算結束時間
sCalendar
//返回Date類型結束時間
return sCalendar
}
/**
* 計算兩個日期的時間間隔
*
* @param sDate開始時間
*
* @param eDate結束時間
*
* @param type間隔類型(
*
* @return interval時間間隔
* */
private static int calInterval(Date sDate
{
//時間間隔
int interval =
/*比較兩個日期的大小
//標志兩個日期是否交換過
boolean reversed = false;
if(compareDate(sDate
{
Date dTest = sDate;
sDate = eDate;
eDate = dTest;
//修改交換標志
reversed = true;
}
/*將兩個日期賦給日歷實例
Calendar sCalendar = Calendar
sCalendar
int sYears = sCalendar
int sMonths = sCalendar
int sDays = sCalendar
Calendar eCalendar = Calendar
eCalendar
int eYears = eCalendar
int eMonths = eCalendar
int eDays = eCalendar
//年
if(cTrim(type)
{
interval = eYears
if(eMonths < sMonths)
{
}
}
//月
else if(cTrim(type)
{
interval =
interval += (eMonths
}
//日
else if(cTrim(type)
{
interval =
interval += (eDays
//除去閏年天數
while(sYears < eYears)
{
if(isLeapYear(sYears))
{
}
++sYears;
}
}
//如果開始日期更大
if(reversed)
{
interval =
}
//返回計算結果
return interval;
}
/**
* 輸出日歷相關字段(當前日期)
*
* @param cNow當前時間
*
* @return null
*
* 各個字段值都可以用get(field)得到
* */
private static void printFields(Calendar cNow)
{
//先用Date類型輸出驗證
SimpleDateFormat df = (SimpleDateFormat)DateFormat
df
System
//逐個輸出相關字段值
System
//月份有問題(這裡的月份開始計數為
System
System
System
System
System
//本年的第幾天
System
System
//即本月的第幾周
System
//即一周中的第幾天(這裡是以周日為第一天的)
System
}
/**
* 判定某個年份是否是閏年
*
* @param year待判定的年份
*
* @return 判定結果
* */
private static boolean isLeapYear(int year)
{
return (year%
}
/**
*
* 字符串去除兩頭空格
*
* @param tStr輸入字符串
*
* @return 如果為空
*
*/
public static String cTrim(String tStr)
{
String ttStr =
if (tStr == null)
{}
else
{
ttStr = tStr
}
return ttStr;
}
/**
* 比較兩個Date類型的日期大小
*
* @param sDate開始時間
*
* @param eDate結束時間
*
* @return result返回結果(
* */
private static int compareDate(Date sDate
{
int result =
//將開始時間賦給日歷實例
Calendar sC = Calendar
sC
//將結束時間賦給日歷實例
Calendar eC = Calendar
eC
//比較
result = pareTo(eC)
//返回結果
return result;
}
}
程序執行結果如下
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26056.html