?? cgetcurrenttimefromtimeclassbegin.java
字號:
package com.sevenEleven.javaBean.admin_test;
public class CgetCurrentTimeFromTimeClassBegin {
String timeClassNow = null; //
public CgetCurrentTimeFromTimeClassBegin(String timeClassBegin,
String timeClassUnit) {
getCurrentTimeFromTimeClassBegin(timeClassBegin, timeClassUnit);
}
/**
* @auther Tim
* @exception 沒有運用到日歷類........只是簡單的得到絕對時間,可讀性不強,有待改進
* @function: 由開學時間和課程的時間片斷得到課程的 精確時間.
* @return: timeClassNow (String) eg: A011420070101
* @from : timeClassUnit (String)eg:A0114 timeClassBegin (String)20060101
*/
public void getCurrentTimeFromTimeClassBegin(String timeClassBegin,
String timeClassUnit) {
timeClassNow = new String(); // 要返回的當前時間片斷的絕對時間
boolean isLeapYear = checkYearIsLeapYear(Integer.valueOf(
timeClassBegin.substring(0, 4)).intValue()); // 是否閏年
int sumDay = getSumDay(timeClassBegin, timeClassUnit, isLeapYear);// 兩個時間的天數相加的總數
int year = Integer.valueOf(timeClassBegin.substring(0, 4)).intValue(); // 當前的絕對的年
year = year += isLeapYear ? sumDay / 366 : sumDay / 365;// 當前的絕對的年
int month = this.getMonthFromSumDay(sumDay, isLeapYear); // 當前絕對的月
int day = this.getDayFromSumDay(sumDay, isLeapYear); // 當前絕對的日
String month1 = month>9 ? String.valueOf(month) : "0"+String.valueOf(month);//轉String型
String day1 = day>9 ? String.valueOf(day) : "0"+String.valueOf(day);
timeClassNow = timeClassUnit + year + month1 + day1; //賦值
}
/**
* @auther Tim function: 是否是閏年,是返回true,否返回false name: check return:
* boolean(trun/false)
*/
public boolean checkYearIsLeapYear(int year) {
return ((0 == year % 4) && (0 != (year % 100))) || (0 == year % 400) ? true
: false;
}
/**
* @auther Tim function: 當月有多少天,返回天數 name: dayOfTheMonth return: int how
* many days of this month from month
*/
public int dayOfTheMonth(int month, boolean isLeapYear) {
if (month == 2) {
return isLeapYear ? 29 : 28;
} else if (month == 4 || month == 6 || month == 10 || month == 12) {
return 30;
} else {
return 31;
}
}
/**
* @auther Tim
* @function: 開學時的天數 + 天數到現在經過的天數
* @name: dayOfTheMonth
* @return: int how many days of this month from month
*/
public int getSumDay(String timeClassBegin, String timeClassUnit,
boolean isLeapYear) {
int dayOfUnit = ((Integer.valueOf(timeClassUnit.substring(1, 3))
.intValue() - 1) * 7 + Integer.valueOf(
timeClassUnit.substring(3,4)).intValue()); // 例如timeClassUnit為A0214
// 返回值為(2-1)*7+1
int sumDay = 0;
for (int i = 1; i < Integer.valueOf(timeClassBegin.substring(4, 6))
.intValue(); i++) {// 遍歷每個月得到總天數 20060301
sumDay += dayOfTheMonth(i, isLeapYear); // 1月的31 + 2月的28
}
sumDay = sumDay + Integer.valueOf(timeClassBegin.substring(6, 8)) + dayOfUnit;
return sumDay;
}
/**
* @auther Tim
* @function: 得到絕對的月份
* @name: getMonthFromSumDay
* @return: 得到絕對的月份
*/
public int getMonthFromSumDay(int sumDay, boolean isLeapYear) {
int day = isLeapYear ? sumDay % 366 : sumDay % 365;
int month;
for (month = 1; day > dayOfTheMonth(month, isLeapYear); month++) {
}
return month;
}
/**
* @auther Tim
* @function: 得到絕對的日
* @name: getMonthFromSumDay
* @return: 得到絕對的日
*/
public int getDayFromSumDay(int sumDay, boolean isLeapYear) {
int day = isLeapYear ? sumDay % 366 : sumDay % 365;
int month;
for (month = 1; day > dayOfTheMonth(month, isLeapYear); month++) {
day -= dayOfTheMonth(month, isLeapYear);
}
return day;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
public String getTimeClassNow() {
return timeClassNow;
}
public void setTimeClassNow(String timeClassNow) {
this.timeClassNow = timeClassNow;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -