package com.kaven.utils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import android.util.Log;
import android.webkit.MimeTypeMap;
public class DateTimeUtil {
private static String birthday="1986-11-17";
private static int maxage=80;
private static DateTimeUtil dateUtil;
private static Date birthdayDate;
private SimpleDateFormat format;
public static DateTimeUtil getInstance(){
if (dateUtil==null) {
dateUtil=new DateTimeUtil();
}
return dateUtil;
}
private DateTimeUtil(){
format=new SimpleDateFormat("yyyy-MM-dd");
try {
birthdayDate=format.parse(birthday);
} catch (ParseException e) {
e.printStackTrace();
}
}
public int getYearRemainDays(){
Calendar ca=Calendar.getInstance();
int pass= ca.get(Calendar.DAY_OF_YEAR);
int all=ca.getActualMaximum(Calendar.DAY_OF_YEAR);
return all-pass;
}
public int getYearPassDays(){
Calendar ca=Calendar.getInstance();
int pass= ca.get(Calendar.DAY_OF_YEAR);
return pass;
}
public int getAge(){
Date today=new Date();
Calendar ca=Calendar.getInstance();
ca.setTime(birthdayDate);
int yearBir=ca.get(Calendar.YEAR);
ca.setTime(today);
int yearToday=ca.get(Calendar.YEAR);
int age=yearToday-yearBir;
return age;
}
public int getMaxAge(){
return maxage;
}
public int getPassDays(){
Date today=new Date();
long dayTime=birthdayDate.getTime();
long nowTime=today.getTime();
long time=nowTime-dayTime;
int passDays=(int)(time/24/60/60/1000);
return passDays;
}
public int getRemainDays(){
Calendar ca=Calendar.getInstance();
ca.setTime(birthdayDate);
Date today=new Date();
ca.add(Calendar.YEAR,maxage);
long maxtime=ca.getTime().getTime();
long now=today.getTime();
int remainDays=(int)((maxtime-now)/24/60/60/1000);
Log.d("tag","remainDays="+remainDays);
return remainDays;
}
public int getAllDays(){
Calendar ca=Calendar.getInstance();
ca.setTime(birthdayDate);
long time=ca.getTime().getTime();
ca.add(Calendar.YEAR,maxage);
long maxtime=ca.getTime().getTime();
int allDays=(int)((maxtime-time)/24/60/60/1000);
return allDays;
}
public String getYearMonthDay(){
Date today=new Date();
String str=format.format(today);
return str;
}
public String getMaxYear(){
Calendar ca=Calendar.getInstance();
ca.setTime(birthdayDate);
long time=ca.getTime().getTime();
ca.add(Calendar.YEAR,maxage);
Date date=ca.getTime();
String str=format.format(date);
return str;
}
public int getMonthMaxDay(){
Calendar ca=Calendar.getInstance();
int maxDay= ca.getActualMaximum(Calendar.DAY_OF_MONTH);
return maxDay;
}
public String getLunarMonthDay(){
Calendar ca=Calendar.getInstance();
LunarCalender luCa=new LunarCalender(ca);
String str=luCa.toString();
return str;
}
public int getTheYearAllDays(){
Calendar ca=Calendar.getInstance();
int maxDays= ca.getActualMaximum(Calendar.DAY_OF_YEAR);
return maxDays;
}
public int getTheYearPassDays(){
Calendar ca=Calendar.getInstance();
int todays=ca.get(Calendar.DAY_OF_YEAR);
return todays;
}
public int getTheYearRemainDays(){
Calendar ca=Calendar.getInstance();
int maxDays= ca.getActualMaximum(Calendar.DAY_OF_YEAR);
int todays=ca.get(Calendar.DAY_OF_YEAR);
int remainDays=maxDays-todays;
return remainDays;
}
public String getTodayTime(){
Date date=new Date();
SimpleDateFormat f=new SimpleDateFormat("HH:mm:ss");
String str=f.format(date);
return str;
}
public String getTodayRemainTime(){
Calendar ca=Calendar.getInstance();
Date date=ca.getTime();
long t1=date.getTime();
ca.set(Calendar.HOUR_OF_DAY, 23);
ca.set(Calendar.SECOND, 59);
ca.set(Calendar.MINUTE, 59);
date=ca.getTime();
long t2=date.getTime();
long t3=(t2-t1)/1000;
int hour=(int)(t3/60/60);
int minute=(int)((t3-hour*60*60)/60);
int second=(int)((t3-hour*60*60)%60);
String strHour;
String strMinute;
String strSecond;
if (hour<10) {
strHour="0"+hour;
}else{
strHour=""+hour;
}
if (minute<10) {
strMinute="0"+minute;
}else{
strMinute=""+minute;
}
if (second<10) {
strSecond="0"+second;
}else{
strSecond=""+second;
}
return strHour+":"+strMinute+":"+strSecond;
}
public String getTheWeekStartEndDate(){
Calendar ca=Calendar.getInstance();
SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd");
int dayOfWeek = ca.get(Calendar.DAY_OF_WEEK);
//中国习惯:周一是一周的开始
if (dayOfWeek==1) {
dayOfWeek=7;
}else{
dayOfWeek--;
}
// Log.d("tag","dayofweek="+dayOfWeek+"min= "+ca.getActualMinimum(Calendar.DAY_OF_WEEK)+" max="+ca.getActualMaximum(Calendar.DAY_OF_WEEK));
Calendar cal=(Calendar)ca.clone();
cal.add(Calendar.DATE,1-dayOfWeek);
Date date1=cal.getTime();
cal=(Calendar)ca.clone();
cal.add(Calendar.DATE,7-dayOfWeek);
Date date2=cal.getTime();
String str1=f.format(date1);
String str2=f.format(date2);
Log.d("tag","date1="+str1+" date2="+str2);
return str1+"_"+str2;
}
public String getTheMonthStartEndDay(){
Calendar ca=Calendar.getInstance();
SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd");
int maximum = ca.getActualMaximum(Calendar.DAY_OF_MONTH);
int minmum=ca.getActualMinimum(Calendar.DAY_OF_MONTH);
int day=ca.get(Calendar.DAY_OF_MONTH);
Calendar cal=(Calendar)ca.clone();
cal.add(Calendar.DATE, maximum-day);
Date dateD=cal.getTime();
String strD=f.format(dateD);
cal=(Calendar)ca.clone();
cal.add(Calendar.DATE, minmum-day);
Date dateX=cal.getTime();
String strX=f.format(dateX);
Log.d("tag","dateD="+strD+" dateX="+strX);
return dateX+"_"+dateD;
}
public String getWeekDay(){
Calendar ca=Calendar.getInstance();
int w=ca.get(Calendar.DAY_OF_WEEK);
Log.d("tag", "w="+w);
String str=null;
switch (w) {
case 2:
str="星期一";
break;
case 3:
str="星期二";
break;
case 4:
str="星期三";
break;
case 5:
str="星期四";
break;
case 6:
str="星期五";
break;
case 7:
str="星期六";
break;
case 1:
str="星期天";
break;
}
return str;
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import android.util.Log;
import android.webkit.MimeTypeMap;
public class DateTimeUtil {
private static String birthday="1986-11-17";
private static int maxage=80;
private static DateTimeUtil dateUtil;
private static Date birthdayDate;
private SimpleDateFormat format;
public static DateTimeUtil getInstance(){
if (dateUtil==null) {
dateUtil=new DateTimeUtil();
}
return dateUtil;
}
private DateTimeUtil(){
format=new SimpleDateFormat("yyyy-MM-dd");
try {
birthdayDate=format.parse(birthday);
} catch (ParseException e) {
e.printStackTrace();
}
}
public int getYearRemainDays(){
Calendar ca=Calendar.getInstance();
int pass= ca.get(Calendar.DAY_OF_YEAR);
int all=ca.getActualMaximum(Calendar.DAY_OF_YEAR);
return all-pass;
}
public int getYearPassDays(){
Calendar ca=Calendar.getInstance();
int pass= ca.get(Calendar.DAY_OF_YEAR);
return pass;
}
public int getAge(){
Date today=new Date();
Calendar ca=Calendar.getInstance();
ca.setTime(birthdayDate);
int yearBir=ca.get(Calendar.YEAR);
ca.setTime(today);
int yearToday=ca.get(Calendar.YEAR);
int age=yearToday-yearBir;
return age;
}
public int getMaxAge(){
return maxage;
}
public int getPassDays(){
Date today=new Date();
long dayTime=birthdayDate.getTime();
long nowTime=today.getTime();
long time=nowTime-dayTime;
int passDays=(int)(time/24/60/60/1000);
return passDays;
}
public int getRemainDays(){
Calendar ca=Calendar.getInstance();
ca.setTime(birthdayDate);
Date today=new Date();
ca.add(Calendar.YEAR,maxage);
long maxtime=ca.getTime().getTime();
long now=today.getTime();
int remainDays=(int)((maxtime-now)/24/60/60/1000);
Log.d("tag","remainDays="+remainDays);
return remainDays;
}
public int getAllDays(){
Calendar ca=Calendar.getInstance();
ca.setTime(birthdayDate);
long time=ca.getTime().getTime();
ca.add(Calendar.YEAR,maxage);
long maxtime=ca.getTime().getTime();
int allDays=(int)((maxtime-time)/24/60/60/1000);
return allDays;
}
public String getYearMonthDay(){
Date today=new Date();
String str=format.format(today);
return str;
}
public String getMaxYear(){
Calendar ca=Calendar.getInstance();
ca.setTime(birthdayDate);
long time=ca.getTime().getTime();
ca.add(Calendar.YEAR,maxage);
Date date=ca.getTime();
String str=format.format(date);
return str;
}
public int getMonthMaxDay(){
Calendar ca=Calendar.getInstance();
int maxDay= ca.getActualMaximum(Calendar.DAY_OF_MONTH);
return maxDay;
}
public String getLunarMonthDay(){
Calendar ca=Calendar.getInstance();
LunarCalender luCa=new LunarCalender(ca);
String str=luCa.toString();
return str;
}
public int getTheYearAllDays(){
Calendar ca=Calendar.getInstance();
int maxDays= ca.getActualMaximum(Calendar.DAY_OF_YEAR);
return maxDays;
}
public int getTheYearPassDays(){
Calendar ca=Calendar.getInstance();
int todays=ca.get(Calendar.DAY_OF_YEAR);
return todays;
}
public int getTheYearRemainDays(){
Calendar ca=Calendar.getInstance();
int maxDays= ca.getActualMaximum(Calendar.DAY_OF_YEAR);
int todays=ca.get(Calendar.DAY_OF_YEAR);
int remainDays=maxDays-todays;
return remainDays;
}
public String getTodayTime(){
Date date=new Date();
SimpleDateFormat f=new SimpleDateFormat("HH:mm:ss");
String str=f.format(date);
return str;
}
public String getTodayRemainTime(){
Calendar ca=Calendar.getInstance();
Date date=ca.getTime();
long t1=date.getTime();
ca.set(Calendar.HOUR_OF_DAY, 23);
ca.set(Calendar.SECOND, 59);
ca.set(Calendar.MINUTE, 59);
date=ca.getTime();
long t2=date.getTime();
long t3=(t2-t1)/1000;
int hour=(int)(t3/60/60);
int minute=(int)((t3-hour*60*60)/60);
int second=(int)((t3-hour*60*60)%60);
String strHour;
String strMinute;
String strSecond;
if (hour<10) {
strHour="0"+hour;
}else{
strHour=""+hour;
}
if (minute<10) {
strMinute="0"+minute;
}else{
strMinute=""+minute;
}
if (second<10) {
strSecond="0"+second;
}else{
strSecond=""+second;
}
return strHour+":"+strMinute+":"+strSecond;
}
public String getTheWeekStartEndDate(){
Calendar ca=Calendar.getInstance();
SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd");
int dayOfWeek = ca.get(Calendar.DAY_OF_WEEK);
//中国习惯:周一是一周的开始
if (dayOfWeek==1) {
dayOfWeek=7;
}else{
dayOfWeek--;
}
// Log.d("tag","dayofweek="+dayOfWeek+"min= "+ca.getActualMinimum(Calendar.DAY_OF_WEEK)+" max="+ca.getActualMaximum(Calendar.DAY_OF_WEEK));
Calendar cal=(Calendar)ca.clone();
cal.add(Calendar.DATE,1-dayOfWeek);
Date date1=cal.getTime();
cal=(Calendar)ca.clone();
cal.add(Calendar.DATE,7-dayOfWeek);
Date date2=cal.getTime();
String str1=f.format(date1);
String str2=f.format(date2);
Log.d("tag","date1="+str1+" date2="+str2);
return str1+"_"+str2;
}
public String getTheMonthStartEndDay(){
Calendar ca=Calendar.getInstance();
SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd");
int maximum = ca.getActualMaximum(Calendar.DAY_OF_MONTH);
int minmum=ca.getActualMinimum(Calendar.DAY_OF_MONTH);
int day=ca.get(Calendar.DAY_OF_MONTH);
Calendar cal=(Calendar)ca.clone();
cal.add(Calendar.DATE, maximum-day);
Date dateD=cal.getTime();
String strD=f.format(dateD);
cal=(Calendar)ca.clone();
cal.add(Calendar.DATE, minmum-day);
Date dateX=cal.getTime();
String strX=f.format(dateX);
Log.d("tag","dateD="+strD+" dateX="+strX);
return dateX+"_"+dateD;
}
public String getWeekDay(){
Calendar ca=Calendar.getInstance();
int w=ca.get(Calendar.DAY_OF_WEEK);
Log.d("tag", "w="+w);
String str=null;
switch (w) {
case 2:
str="星期一";
break;
case 3:
str="星期二";
break;
case 4:
str="星期三";
break;
case 5:
str="星期四";
break;
case 6:
str="星期五";
break;
case 7:
str="星期六";
break;
case 1:
str="星期天";
break;
}
return str;
}
}