PHP字串長度找子字串與取代字串的常用函數

PHP在字串的操作上,有非常多的相關函數可以使用,我們在這裡只介紹經常會使用到的字串操作函數。像是如何取得字串的長度、在某一個字裏面尋找子字串首次出現的位置、以及字串的取代函數...等等。這些都是在編寫程式的時候,頻繁被程式設計師使用到的基礎函數。 取得字串長度 <?...

顯示具有 Java日曆使用 標籤的文章。 顯示所有文章
顯示具有 Java日曆使用 標籤的文章。 顯示所有文章

2012年7月18日 星期三

get(int field)方法 - Java日曆類別

回java日曆類別使用主頁

get(int field)方法

回傳給定日曆欄位值。


程式範例

package jcode.test.calendar;

import java.util.Calendar;

public class Sample012 {

  /**
   @param args
   */
  public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();
    
    //設定年份的欄位代碼
    int field = Calendar.YEAR;
    
    //取得年份的整數值
    int year = cal.get(field);
    
    System.out.println(year);

  }

}


執行結果







創建日曆實體 - Java日曆類別

回java日曆類別使用主頁

創建日曆實體

首先要操作「Calendar」日曆類別的函式前,需要先創建日曆的類別實體,
可以透過以下四種方式來建立實體類別:
  •   使用預設getInstance()方法  (最常使用方式)
  •   傳入語系的getInstance(Locale aLocale)方法
  •   傳入時區的getInstance(TimeZone zone)方法
  •   傳入時區和語系的getInstance(TimeZone zone, Locale aLocale)方法

程式範例

當我們創建Calendar類別實體(Calendar cal = Calendar.getInstance();),還需要配合日曆類別的相關屬性與方法一起使用,請再回到Java日曆類別使用頁面, 繼續學習。
package jcode.test.calendar;

import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;

public class Sample011 {

  /**
   @param args
   */
  public static void main(String[] args) {
    
    //系統預設語系
    Locale defLocale = Locale.getDefault()//繁體中文
    //系統預設時區
    TimeZone defZone = TimeZone.getDefault();  //台灣標準時間
    System.out.println("預設語系: "+defLocale+" 預設時區: "+defZone.getID());
    
    //指定語系
    Locale locale = Locale.US;  //英文
    //指定時區
    TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles")//太平洋標準時間
    System.out.println("指定語系: "+locale+" 指定時區: "+zone.getID());    
    
    //1.使用預設時區和預設語系建立Calendar實體  (最常使用方式)
    Calendar cal = Calendar.getInstance();
    
    //2.使用指定語系建立Calendar實體    
    Calendar cal1 = Calendar.getInstance(locale);
    
    //3.使用指定時區建立Calendar實體    
    Calendar cal2 = Calendar.getInstance(zone);    
    
    //4.使用指定時區和指定語系建立Calendar實體    
    Calendar cal3 = Calendar.getInstance(zone,locale);    

  }

}


執行結果







2012年7月17日 星期二

取得年份 - Java日曆類別

回java日曆類別使用主頁

取得年份

先以Calendar.YEAR得到表示年的欄位代碼,再使用Calendar的get方法找到目前的年份。


程式範例

package jcode.test.calendar;

import java.util.Calendar;

public class Sample002 {

  /**
   @param args
   */
  public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();    
    //取得今年年份
    int year = cal.get(Calendar.YEAR);
    System.out.println("今年是"+year+"年");

  }

}


執行結果







取得日(day) - Java日曆類別

回java日曆類別使用主頁

取得日(day)

若要取得本月第幾日可以先以Calendar.DAY_OF_MONTH得到本月第幾日欄位代碼,
再以該欄位代碼為Calendar的get方法引數獲得本月第幾日整數值。


程式範例

package jcode.test.calendar;

import java.util.Calendar;

public class Sample005 {

  /**
   @param args
   */
  public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();
    
    //取得本月份的第幾日  (方法一)
    int dayOfMonth1 = cal.get(Calendar.DAY_OF_MONTH);
    System.out.println("本月的"+dayOfMonth1+"日 (方法一)");
    
    //取得本月份的第幾日  (方法二)
    int dayOfMonth2 = cal.get(Calendar.DATE);
    System.out.println("本月的"+dayOfMonth2+"日 (方法二)");

  }

}


執行結果








白天(AM) / 夜晚(PM) - Java日曆類別

回java日曆類別使用主頁

白天(AM) / 夜晚(PM)

若要取得白天或夜晚可以先以Calendar.AM_PM得到白天或夜晚欄位代碼,
再以該欄位代碼為Calendar的get方法引數獲得白天或夜晚的整數值。


程式範例

package jcode.test.calendar;

import java.util.Calendar;

public class Sample006 {

  /**
   @param args
   */
  public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();
    
    //取得現在是白天(AM)或夜晚(PM)的整數值
    int amPm = cal.get(Calendar.AM_PM);
    
    //判斷取得的數值等於白天或夜晚
    switch(amPm){
    case Calendar.AM:
      System.out.println("白天");
      break;
    case Calendar.PM:
      System.out.println("夜晚");    
    }

  }

}


執行結果







取得小時 - Java日曆類別

回java日曆類別使用主頁

取得小時

若要取得小時可以先以Calendar.HOUR_OF_DAY得到小時欄位代碼,
再以該欄位代碼為Calendar的get方法引數獲得現在時刻的整數值。


程式範例

package jcode.test.calendar;

import java.util.Calendar;

public class Sample007 {

  /**
   @param args
   */
  public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();
    
    //取得現在時刻 (12小時制)
    int hour = cal.get(Calendar.HOUR);
    System.out.println(hour+"點");
    
    //取得現在時刻 (24小時制)
    int hourOfDay = cal.get(Calendar.HOUR_OF_DAY);
    System.out.println(hourOfDay+"點");    

  }

}


執行結果







取得星期幾 - Java日曆類別

回java日曆類別使用主頁

取得星期幾

若要取得目前星期幾可以先以Calendar.DAY_OF_WEEK得到星期幾欄位代碼,
再以星期幾欄位代碼為Calendar的get方法引數獲得整數值,最後以switch流程判斷取得的數值等於星期幾。


程式範例

package jcode.test.calendar;

import java.util.Calendar;

public class Sample004 {

  /**
   @param args
   */
  public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();
    
    //取得星期幾的整數值
    int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
    
    //判斷取得的數值等於星期幾
    switch(dayOfWeek){
    case Calendar.SUNDAY:
      System.out.println("星期日");
      break;
    case Calendar.MONDAY:
      System.out.println("星期一");
      break;
    case Calendar.TUESDAY:
      System.out.println("星期二");
      break;
    case Calendar.WEDNESDAY:
      System.out.println("星期三");
      break;
    case Calendar.THURSDAY:
      System.out.println("星期四");
      break;
    case Calendar.FRIDAY:
      System.out.println("星期五");
      break;
    case Calendar.SATURDAY:
      System.out.println("星期六");
    }

  }

}


執行結果







取得月份 - Java日曆類別

回java日曆類別使用主頁

取得月份

若要取得目前月份可以先以Calendar.MONTH得到月份欄位代碼,
再以月份欄位代碼為Calendar的get方法引數獲得整數值,最後以switch流程判斷取得數值等於幾月份。


程式範例

package jcode.test.calendar;

import java.util.Calendar;

public class Sample003 {

  /**
   @param args
   */
  public static void main(String[] args) {  
    Calendar cal = Calendar.getInstance();
    
    //取得本月份的整數值
    int thisMonth = cal.get(Calendar.MONTH);    
    
    //判斷取得的數值等於幾月份
    switch(thisMonth){
    case Calendar.JANUARY:
      System.out.println("一月");
      break;
    case Calendar.FEBRUARY:
      System.out.println("二月");
      break;
    case Calendar.MARCH:
      System.out.println("三月");
      break;
    case Calendar.APRIL:
      System.out.println("四月");
      break;
    case Calendar.MAY:
      System.out.println("五月");
      break;
    case Calendar.JUNE:
      System.out.println("六月");
      break;
    case Calendar.JULY:
      System.out.println("七月");
      break;
    case Calendar.AUGUST:
      System.out.println("八月");
      break;
    case Calendar.SEPTEMBER:
      System.out.println("九月");
      break;
    case Calendar.OCTOBER:
      System.out.println("十月");
      break;
    case Calendar.NOVEMBER:
      System.out.println("十一月");
      break;
    case Calendar.DECEMBER:
      System.out.println("十二月");    
    }

  }

}


執行結果







取得本月份的第幾週、當年度的第幾日或第幾週 - Java日曆類別

回java日曆類別使用主頁

取得本月份的第幾週、當年度的第幾日或第幾週

若要以Java Calendar類別屬性抓取第幾週、第幾日等的時間資訊,需要配合Calendar的get函式一起使用,詳細說明參考以下程式例子。


程式範例

package jcode.test.calendar;

import java.util.Calendar;

public class Sample001 {

  /**
   @param args
   */
  public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();
    
    System.out.println("---1. 取得當月份內的第幾週---");
    
    //當月份內的第幾週  (方法一)
    int weekOfMonth1 = cal.get(Calendar.DAY_OF_WEEK_IN_MONTH);
    System.out.println("本月第"+weekOfMonth1+"週 (方法一)");
    
    //當月份內的第幾週  (方法二)
    int weekOfMonth2 = cal.get(Calendar.WEEK_OF_MONTH);
    System.out.println("本月第"+weekOfMonth2+"週 (方法二)\n");    
    
    System.out.println("---2. 取得一年中的第幾日---");
    
    //一年中的第幾日
    int dayOfYear = cal.get(Calendar.DAY_OF_YEAR);
    System.out.println("今年第"+dayOfYear+"日\n");
    
    System.out.println("---3. 取得一年中第幾週---");
    
    //一年中第幾週
    int weekOfYear = cal.get(Calendar.WEEK_OF_YEAR);
    System.out.println("今年第"+weekOfYear+"週");   
    
  }

}


執行結果














取得分鐘 - Java日曆類別

回java日曆類別使用主頁

取得分鐘

若要取得目前第幾分鐘可以先以Calendar.MINUTE得到目前第幾分鐘欄位代碼,
再以該欄位代碼為Calendar的get方法引數獲得目前第幾分鐘整數值。


程式範例

package jcode.test.calendar;

import java.util.Calendar;

public class Sample008 {

  /**
   @param args
   */
  public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();
    
    int minute = cal.get(Calendar.MINUTE);
    System.out.println("現在是"+minute+"分鐘");

  }

}


執行結果







取得秒數 - Java日曆類別

回java日曆類別使用主頁

取得秒數

若要取得目前第幾秒數可以先以Calendar.SECOND得到目前第幾秒數欄位代碼,
再以該欄位代碼為Calendar的get方法引數獲得目前第幾秒數整數值。


程式範例

package jcode.test.calendar;

import java.util.Calendar;

public class Sample009 {

  /**
   @param args
   */
  public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();
    
    //取得現在第幾秒
    int second = cal.get(Calendar.SECOND);
    System.out.println("現在是"+second+"秒");
    
    //取得現在第幾毫秒
    int milliSecond = cal.get(Calendar. MILLISECOND);
    System.out.println("現在是"+milliSecond+"毫秒");

  }

}


執行結果







Java Calendar類別使用

「Calendar」類別是一個抽象類別,提供方法用於特定時間片刻與一組日曆欄位(例如,YEAR,HOUR)之間的轉換, 並且處理日曆欄位(舉例,如取得下星期的日期)。

1. 常用日曆屬性

          以下表格的屬性需配合Calendar的get與set方法一起使用:
static int DAY_OF_WEEK_IN_MONTH
表示在當月份內的第幾週的欄位代碼
static int WEEK_OF_MONTH
表示在當月份內的第幾週的欄位代碼
static int DAY_OF_YEAR
表示在一年的第幾日的欄位代碼 
static int WEEK_OF_YEAR
表示在一年中第幾週的欄位代碼

          以下表格的屬性需配合Calendar的get與set方法一起使用:
static int YEAR
表示年的欄位代碼

          以下表格使用公曆(Gregorian)和朱利安(Julian)日曆 :
static int JANUARY
表示一年中的第一個月的MONTH欄位代碼
static int FEBRUARY
表示一年中的第二個月MONTH欄位代碼
static int MARCH
表示一年中的第三個月MONTH欄位代碼
static int APRIL
表示一年中的第四個月MONTH欄位代碼
static int MAY
表示一年中的第五個月MONTH欄位代碼
static int JUNE
表示一年中的第六個月MONTH欄位代碼
static int JULY
表示一年中的第七個月MONTH欄位代碼
static int AUGUST
表示一年中的第八個月MONTH欄位代碼
static int SEPTEMBER
表示一年中的第九個月MONTH欄位代碼
static int OCTOBER
表示一年中的第十個月MONTH欄位代碼
static int NOVEMBER
表示一年中的第十一個月MONTH欄位代碼
static int DECEMBER
表示一年中的第十二個月MONTH欄位代碼
static int MONTH
表示月份的欄位代碼,用於get和set方法

static int MONDAY
表示星期一的DAY_OF_WEEK欄位代碼
static int TUESDAY
表示星期二的DAY_OF_WEEK欄位代碼
static int WEDNESDAY
表示星期三的DAY_OF_WEEK欄位代碼
static int THURSDAY
表示星期四的DAY_OF_WEEK欄位代碼
static int FRIDAY
表示星期五的DAY_OF_WEEK欄位代碼
static int SATURDAY
表示星期六的DAY_OF_WEEK欄位代碼
static int SUNDAY
表示星期日的DAY_OF_WEEK欄位代碼
static int DAY_OF_WEEK
表示一週中的星期幾的欄位代碼,用於get和set方法

           以下表格的屬性需配合Calendar的get與set方法一起使用:
static int DATE
表示目前月份中的日子的欄位代碼
static int DAY_OF_MONTH
表示目前月份中的日子的欄位代碼

static int AM
表示從午夜到中午之前的一天內AM_PM欄位代碼
static int PM
表示從中午到午夜前一天內AM_PM欄位代碼
static int AM_PM
表示小時是否在中午之前或之後的欄位代碼,用於get和set方法

          以下表格用於Calendar的get和set方法:
static int HOUR
表示現在的時刻的欄位代碼,以12小時制
static int HOUR_OF_DAY
表示現在的時刻的欄位代碼24小時制

          以下表格用於Calendar的get和set方法:
static int MINUTE
表示在一小時內的分鐘的欄位數值

          以下表格用於Calendar的get和set方法:
static int SECOND
表示在一分鐘內的秒數的欄位數值
static int MILLISECOND
表示在一秒中的毫秒的欄位數值

          舉個例子,若要產生2012/7/17的日期樣式,我們就需要混合使用上述日曆常用屬性。


2. 常用方法

static Calendar getInstance()
  取得日曆,使用預設時區與語系。

static Calendar getInstance(Locale aLocale)
  依指定語系來取得日曆。

static Calendar getInstance(TimeZone zone)
  依指定時區來取得日曆。

static Calendar getInstance(TimeZone zone, Locale aLocale)
  依指定時區和指定語系來取得日曆。

  • 依給定的欄位代碼,取得、增加、設定數值
int get(int field)
  回傳給定日曆欄位值。

abstract void add(int field, int amount)
  增加或減少特定時間的數量到給定的日曆欄位,根據日曆的規則。

void set(int field, int value)
  設定指定日曆欄位並賦予給定值。

void set(int year, int month, int date)
  針對日曆欄位的年、月、日來設定值。

void set(int year, int month, int date, int hourOfDay, int minute)
  針對日曆欄位的年、月、日、時、分來設定值。

void set(int year, int month, int date, int hourOfDay, int minute, int second)
  針對日曆欄位的年、月、日、時、分、秒來設定值。

  • 取得與設定日期
Date getTime()
  回傳代表目前日曆時間值的時期物件。

void setTime(Date date)
  依給定日期值來設定目前的日曆時間。

  • 取得與設定時區
TimeZone getTimeZone()
  取得時區。

void setTimeZone(TimeZone value)
  依給定的TimeZone值來設定時區。

  • 取得與設定一星期的第一天
int getFirstDayOfWeek()
  取得一星期中的第一天,例如美國是星期日、法國是星期一。

void setFirstDayOfWeek(int value)
  設定一星期中的第一天。

  • 取得與設定毫秒
long getTimeInMillis()
  回傳以毫秒表示的目前日曆時戳值。

void setTimeInMillis(long millis)
  依給定的long值來設定目前日曆的現在時間。

  • 比較日期
boolean after(Object when)
  回傳目前日曆時間是否在指定日曆時間之後,若是則為真值(true)

boolean before(Object when)
  回傳目前日曆時間是否在指定日曆時間之前,若是則為真值(true)

int compareTo(Calendar anotherCalendar)
  比較兩個日曆時間的大小。

boolean equals(Object obj)
  比較目前日曆時間與指定日曆時間是否相等。


取得2012/7/17的日期樣式 - Java日曆類別

回java日曆類別使用主頁

取得2012/7/17的日期樣式

若我們要產生2012/7/17日的日期格式,

  • 首先要以Calendar.YEAR得到年份資訊
  • 再以Calendar.MONTH得到月份資訊
  • 下一步以Calendar.DAY_OF_MONTH得到日資訊

最後將上以年、月、日的資訊以「/」組合起來就是我們要的日期格式,細部說明請參考程式範例。


程式範例

package jcode.test.calendar;

import java.util.Calendar;

public class Sample010 {

  /**
   @param args
   */
  public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();
    
    //取得年份
    int year = cal.get(Calendar.YEAR);
    
    //取得月份
    int month = cal.get(Calendar.MONTH);
    month = convertMonth(month);
    
    //取得日子
    int day = cal.get(Calendar.DAY_OF_MONTH);
    
    //輸出i.e., 2012/7/17的日期格式
    System.out.println(year+"/"+month+"/"+day);  

  }
  
  
  /**
   * 月份轉換函式
   @param mon
   @return
   */
  public static int convertMonth(int mon){    
    switch(mon){
    case Calendar.JANUARY:
      return 1;
    case Calendar.FEBRUARY:
      return 2;
    case Calendar.MARCH:
      return 3;
    case Calendar.APRIL:
      return 4;
    case Calendar.MAY:
      return 5;
    case Calendar.JUNE:
      return 6;
    case Calendar.JULY:
      return 7;
    case Calendar.AUGUST:
      return 8;
    case Calendar.SEPTEMBER:
      return 9;
    case Calendar.OCTOBER:
      return 10;
    case Calendar.NOVEMBER:
      return 11;
    case Calendar.DECEMBER:
      return 12;
    default:
      return -1;
    }    
  }

}


執行結果