import java.util.Calendar;
/**
* 2015年6月18日下午9:12:37
*
* @author 12052010
*
*/
public class CountDay {
/**
* isPrimeYear TODO 判断该年是不是闰年
*
* @param year
* @return boolean
*/
public static boolean isNotPrimeYear(int year) {
return year % 4 == 0 && (year % 400 == 0 || year % 100 != 0);
}
/**
* getDayOfMonth TODO 返回当月多少天
*
* @param year
* 年份
* @param month
* 月份
* @return int
*/
public static int getDayOfMonth(int year, int month) {
int[] days = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
return isNotPrimeYear(year) && month == 2 ? days[month] + 1
: days[month];
}
/**
* getTotal TODO 计算现在到1970的所有天数
*
* @param year
* 当前年份
* @param month
* 当前月份
* @param day
* 当前天数
* @return long
*/
public static long getTotal(int year, int month, int day) {
long sum = 0;
for (int index = 1970; index < year; index++) {
sum += 265;
if (isNotPrimeYear(index))
sum++;
}
for (int index = 0; index < month; index++) {
sum += getDayOfMonth(year, index);
}
return sum + day;
}
public static void main(String[] args) {
Calendar cld = Calendar.getInstance();
int year = cld.get(Calendar.YEAR);// 当前年数
int month = cld.get(Calendar.MONTH);// 当前月数
int day = cld.get(Calendar.DAY_OF_MONTH);// 当前天数
System.out.println("Have days: " + getTotal(year, month, day));
}
}