Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 計算所在周所在月的前後日期

android 計算所在周所在月的前後日期

編輯:關於Android編程

效果圖:

\

使用了 一個時間相關的工具類

 

package com.yqy.yqy_date;

import android.util.Log;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 時間工具類
 * @author YQY
 *
 */
public class ToolDateTime {

	/** 日期格式:yyyy-MM-dd HH:mm:ss **/
	public static final String DF_YYYY_MM_DD_HH_MM_SS = yyyy-MM-dd HH:mm:ss;

	/** 日期格式:yyyy-MM-dd HH:mm **/
	public static final String DF_YYYY_MM_DD_HH_MM = yyyy-MM-dd HH:mm;

	/** 日期格式:yyyy-MM-dd **/
	public static final String DF_YYYY_MM_DD = yyyy-MM-dd;

	/** 日期格式:HH:mm:ss **/
	public static final String DF_HH_MM_SS = HH:mm:ss;

	/** 日期格式:HH:mm **/
	public static final String DF_HH_MM = HH:mm;

	private final static long minute = 60 * 1000;// 1分鐘
	private final static long hour = 60 * minute;// 1小時
	private final static long day = 24 * hour;// 1天
	private final static long month = 31 * day;// 月
	private final static long year = 12 * month;// 年

	/** Log輸出標識 **/
	private static final String TAG = ToolDateTime.class.getSimpleName();

	/**
	 * 將日期格式化成友好的字符串:幾分鐘前、幾小時前、幾天前、幾月前、幾年前、剛剛
	 * 
	 * @param date
	 * @return
	 */
	public static String formatFriendly(Date date) {
		if (date == null) {
			return null;
		}
		long diff = new Date().getTime() - date.getTime();
		long r = 0;
		if (diff > year) {
			r = (diff / year);
			return r + 年前;
		}
		if (diff > month) {
			r = (diff / month);
			return r + 個月前;
		}
		if (diff > day) {
			r = (diff / day);
			return r + 天前;
		}
		if (diff > hour) {
			r = (diff / hour);
			return r + 個小時前;
		}
		if (diff > minute) {
			r = (diff / minute);
			return r + 分鐘前;
		}
		return 剛剛;
	}

	/**
	 * 將日期以yyyy-MM-dd HH:mm:ss格式化
	 * 
	 * @param dateL
	 *            日期
	 * @return
	 */
	public static String formatDateTime(long dateL) {
		SimpleDateFormat sdf = new SimpleDateFormat(DF_YYYY_MM_DD_HH_MM_SS);
		Date date = new Date(dateL);
		return sdf.format(date);
	}

	/**
	 * 將日期以yyyy-MM-dd HH:mm:ss格式化
	 * 
	 * @param dateL
	 *            日期
	 * @return
	 */
	public static String formatDateTime(long dateL, String formater) {
		SimpleDateFormat sdf = new SimpleDateFormat(formater);
		return sdf.format(new Date(dateL));
	}

	/**
	 * 將日期以yyyy-MM-dd HH:mm:ss格式化
	 * 
	 * @param dateL
	 *            日期
	 * @return
	 */
	public static String formatDateTime(Date date, String formater) {
		SimpleDateFormat sdf = new SimpleDateFormat(formater);
		return sdf.format(date);
	}

	/**
	 * 將日期字符串轉成日期
	 * 
	 * @param strDate
	 *            字符串日期
	 * @return java.util.date日期類型
	 */
	public static Date parseDate(String strDate) {
		DateFormat dateFormat = new SimpleDateFormat(DF_YYYY_MM_DD_HH_MM_SS);
		Date returnDate = null;
		try {
			returnDate = dateFormat.parse(strDate);
		} catch (ParseException e) {
			Log.v(TAG, parseDate failed !);

		}
		return returnDate;

	}

	/**
	 * 獲取系統當前日期
	 * 
	 * @return
	 */
	public static Date gainCurrentDate() {
		return new Date();
	}

	/**
	 * 驗證日期是否比當前日期早
	 * 
	 * @param target1
	 *            比較時間1
	 * @param target2
	 *            比較時間2
	 * @return true 則代表target1比target2晚或等於target2,否則比target2早
	 */
	public static boolean compareDate(Date target1, Date target2) {
		boolean flag = false;
		try {
			String target1DateTime = ToolDateTime.formatDateTime(target1,
					DF_YYYY_MM_DD_HH_MM_SS);
			String target2DateTime = ToolDateTime.formatDateTime(target2,
					DF_YYYY_MM_DD_HH_MM_SS);
			if (target1DateTime.compareTo(target2DateTime) <= 0) {
				flag = true;
			}
		} catch (Exception e1) {
			System.out.println(比較失敗,原因: + e1.getMessage());
		}
		return flag;
	}

	/**
	 * 對日期進行增加操作
	 * 
	 * @param target
	 *            需要進行運算的日期
	 * @param hour
	 *            小時
	 * @return
	 */
	public static Date addDateTime(Date target, double hour) {
		if (null == target || hour < 0) {
			return target;
		}

		return new Date(target.getTime() + (long) (hour * 60 * 60 * 1000));
	}

	/**
	 * 對日期進行相減操作
	 * 
	 * @param target
	 *            需要進行運算的日期
	 * @param hour
	 *            小時
	 * @return
	 */
	public static Date subDateTime(Date target, double hour) {
		if (null == target || hour < 0) {
			return target;
		}

		return new Date(target.getTime() - (long) (hour * 60 * 60 * 1000));
	}

}

MainActivity

 

 

package com.yqy.yqy_date;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;

public class MainActivity extends Activity {
	private TextView tv_week, tv_month;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		tv_week = (TextView) findViewById(R.id.tv_week);
		tv_month = (TextView) findViewById(R.id.tv_month);

		Date mDate = new Date();
		Date sDate = null;
		Date eDate = null;
		String sstr = ;
		String estr = ;
		sDate = ToolDateTime.subDateTime(mDate, (mDate.getDay() - 1) * 24);
		for (int i = 0; i < 15; i++) {
			eDate = ToolDateTime.addDateTime(sDate, 6 * 24);
			sstr = ToolDateTime.formatDateTime(sDate,
					ToolDateTime.DF_YYYY_MM_DD);
			estr = ToolDateTime.formatDateTime(eDate,
					ToolDateTime.DF_YYYY_MM_DD);
			tv_week.append(sstr + ~ + estr + 
);
			sDate = ToolDateTime.addDateTime(eDate, 24);
		}
		
		SimpleDateFormat format = new SimpleDateFormat(ToolDateTime.DF_YYYY_MM_DD);
		// 獲取當前月第一天:
		
		String first = ;
		String last = ;
		
		for (int i = 0; i < 10; i++) {
			Calendar c = Calendar.getInstance();
			Calendar ca = Calendar.getInstance();
			c.add(Calendar.MONTH, i);
			c.set(Calendar.DAY_OF_MONTH, 1);// 設置為1號,當前日期既為本月第一天
			first = format.format(c.getTime());

			// 獲取當前月最後一天
			ca.add(Calendar.MONTH, i);
			ca.set(Calendar.DAY_OF_MONTH,www.2cto.com
					ca.getActualMaximum(Calendar.DAY_OF_MONTH));
			last = format.format(ca.getTime());
			tv_month.append(first+~+last+
);
		}

	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}
 

 

 



    

    





 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved