部落客廣告聯播

2007年10月21日 星期日

[javascript小技巧] 拉卷軸,物件跟著跑

拉卷軸,物件跟著跑

function setSellerInfoButtonLocation()
{
var btn=document.getElementById('seller-info-link');
btn.style.left=document.body.scrollLeft + document.body.clientWidth -btn.offsetWidth;
btn.style.top = document.documentElement.scrollTop+"px";
}

....
....
<body onload="setSellerInfoButtonLocation()" onscroll="setSellerInfoButtonLocation()" >

<body />

2007年9月30日 星期日

JSP custom tag library在OC4J中的使用注意事項(Notifications on using JSP Tag Library in OC4J)

在Tomcat上跑JSP常寫些custom tag lib如下:<myLib:myTag attribute1=" <%=request.getParameter("param") %> " />但在OC4J竟然會解析錯誤,無法解譯成java檔。
這真是令我想不透。


經過一番追查,改成如下:<myLib:myTag attribute1=' <%=request.getParameter("param") %> ' />
竟然就可以了。

都是雙引號在作怪。

2007年9月16日 星期日

Java月曆DIY (Build your Calendar in Java)

不久前曾介紹過DateFormatSymbols可用來製作月曆等,今天就來DIY一個月曆。
這裡提供的程式式最基本的用法,若修改成JSP/custom tag形式,配合聯結資料庫,可進一步做出行事曆等多項應用。










import java.text.DateFormatSymbols;
import java.text.DecimalFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;


public class MyCalendar {

private int firstDayOfWeek=0;

public static void main(String[] args) {
showCalendar(2007,9,0);
showCalendar(2007,10,1);

}

/**
*
* @param year 年
* @param month 月
* @param firstDayOfWeek 每週第一天為 1 2 3 4 5 6 0 ,0=SUN
*/
private static void showCalendar(int year,int month,int firstDayOfWeek)
{
System.out.println(String.valueOf(year)+"年/"+String.valueOf(month)+"月");

String[] weekHeader=getCalendarWeekHeader(firstDayOfWeek);
for(String day:weekHeader)
{
System.out.print(day+"\t");
}
System.out.println();

String[][] content=getCalendarContent(year,month,firstDayOfWeek);
for(String[] days:content)
{
for(String day:days)
{
System.out.print(day);
}
System.out.println();
}
}

private static String[] getCalendarWeekHeader(int firstDay)
{
DateFormatSymbols smb=new DateFormatSymbols(Locale.getDefault());
String[] dayList=smb.getShortWeekdays(); // " ",sun,mon,tues......[] ,first element is blank string
String[] newDayList=new String[dayList.length-1];

for(int i=0;i<7;i++,firstDay++)
{
if(firstDay==7)firstDay=0;
newDayList[i]=dayList[firstDay+1];
}
//re-order
return newDayList;
}

private static int[] getCalendarWeekIntArr(int firstDay)
{
int[] newIntDayList=new int[7];

for(int i=0;i<7;i++,firstDay++)
{
if(firstDay==7)firstDay=0;
newIntDayList[i]=firstDay;
}

return newIntDayList;
}

private static String[] getCalendarWeekHeader()
{
return getCalendarWeekHeader(0);
}

private static String[][] getCalendarContent(int year,int month,int firstOfWeek)
{
GregorianCalendar calendar=new GregorianCalendar(Locale.getDefault());
calendar.set(year,month-1,1);

// calc how many rows
int maxDateOfThisMonth=calendar.getActualMaximum(calendar.DATE); //max date number of the month
int minDateOfThisMonth=calendar.getActualMinimum(calendar.DATE); //min date number of the month
calendar.set(calendar.DATE, maxDateOfThisMonth);
calendar.setMinimalDaysInFirstWeek(1); //?
calendar.setFirstDayOfWeek(firstOfWeek+1);
int rowCount=calendar.get(calendar.WEEK_OF_MONTH);

String[][] content=new String[rowCount][7];

//fill blank string to initial
for(int i=0;i<rowCount;i++)
{
Arrays.fill(content[i], "");
}


//fill content
int date=minDateOfThisMonth;
int[] weekInts=getCalendarWeekIntArr(firstOfWeek);

for(int row=0;row<rowCount;row++) //row
{
for(int col=0;col<7;col++) //column
{
if(date<=maxDateOfThisMonth)
{
calendar.set(calendar.DATE, date);
if(calendar.get(calendar.DAY_OF_WEEK)==weekInts[col]+1)
{
content[row][col]=String.valueOf(date)+"\t";
date++;
}
else
{
content[row][col]="\t";
}

}
}
}

return content;
}
}



輸出結果:

星期日 星期一 星期二 星期三 星期四 星期五 星期六
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

2007年/10月
星期一 星期二 星期三 星期四 星期五 星期六 星期日
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

2007年9月6日 星期四

JavaScript實用函數:移除陣列元素 (Java script function: remove element from Array )



function array_removeAt(array,index)
{
var newArr=new Array(array.length-1);

var idx=0;
for(var i=0;i<array.length-1;i++)
{
if(i==index)continue;

newArr[idx]=array[i];
idx++;
}
return newArr;
}


-----------------------------------------------------
itemCodesArr=array_removeAt(itemCodesArr,j);

2007年8月22日 星期三

實用Java文件資源:Sun 官方提供Java Tutorials

學Java可以不用買書(代價是你要看的懂英文)
Sun官方提供
Java Tutorial:http://java.sun.com/docs/books/tutorial
書目章節大綱: Really Big Index
也可下載離線版本慢慢看:download page

更多Java 相關的Tutorial可在 Tutorials and Online Training找到喔...

一起練功吧.....

2007年8月13日 星期一

DateFormatSymbols

假設一個情形:你想自己寫一個JSP月曆表、或者是GUI月曆控制項,第一步當然是先產生月曆。
然而第一個遇到的問題便是要如何動態的產生星期x、星期x、x月,又如果user換成是外國人,他們習慣一周第一天是禮拜天、而且每周七天可不叫星期x而是SUN、Mon等表示,用if-than-else或switch判斷嗎?喔,別傻了?JDK裡面早有巨人的肩膀可以讓你站在上面了,這時便需要javax.text.DateFormatSymbols類別了。

這個類別封裝了區域化的date-time格式資料,像是月份的名稱、一星期各天的名稱、時區資料等。DateFormat和SimpleDateFormat都是使用DateFormatSymbols來封裝資訊。

當然API javadoc中說明通常不直接拿DateFormatSymbols來使用,但在我們要自己製作Calendar時拿來用無何不妥,可以省下許多程式碼與時間。

建構子:

  • DateFormatSymbols()
  • DateFormatSymbols(Locale locale)
    第二個建構子可傳進自訂的locale

重要方法:

  1. getMonths( )
  2. getShortMonths( )
  3. getShortWeekdays( )
  4. getShortWeekdays( )
    其他就不多加描述了,請參閱JDK文件或是直接參考下面的範例與結果



DateFormatSymbols smb=new DateFormatSymbols();
smb.getAmPmStrings();
//(java.lang.String[]) [上午, 下午]

DateFormatSymbols smb=new DateFormatSymbols();
smb.getEras();
//(java.lang.String[]) [西元前, 西元]
DateFormatSymbols smb=new DateFormatSymbols//(java.util.Locale.ENGLISH.US);
smb.getEras();//(java.lang.String[]) [BC, AD]

DateFormatSymbols smb=new DateFormatSymbols();
smb.getLocalPatternChars();
//(java.lang.String)GyMdkHmsSEDFwWahKzZ

DateFormatSymbols smb=new DateFormatSymbols//(java.util.Locale.ENGLISH.US);
smb.getLocalPatternChars();
//(java.lang.String) GyMdkHmsSEDFwWahKzZ

DateFormatSymbols smb=new DateFormatSymbols();
smb.getMonths();
//(java.lang.String[]) [一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月, ]

DateFormatSymbols smb=new DateFormatSymbols//(java.util.Locale.ENGLISH.US);
smb.getMonths();
//(java.lang.String[]) [January, February, March, April, May, June, July, August, September, October, November, December, ]

DateFormatSymbols smb=new DateFormatSymbols();
smb.getShortMonths();
//(java.lang.String[]) [一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月, ]

DateFormatSymbols smb=new DateFormatSymbols//(java.util.Locale.ENGLISH.US);
smb.getShortMonths();
//(java.lang.String[]) [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, ]

DateFormatSymbols smb=new DateFormatSymbols();
smb.getShortWeekdays();
//(java.lang.String[]) [, 星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]

DateFormatSymbols smb=new DateFormatSymbols//(java.util.Locale.ENGLISH.US);
smb.getShortWeekdays();
//(java.lang.String[]) [, Sun, Mon, Tue, Wed, Thu, Fri, Sat]

DateFormatSymbols smb=new DateFormatSymbols();
smb.getWeekdays();
//(java.lang.String[]) [, 星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]

DateFormatSymbols smb=new DateFormatSymbols//(java.util.Locale.ENGLISH.US);
smb.getWeekdays();
//(java.lang.String[]) [, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]


DateFormatSymbols smb=new DateFormatSymbols();
smb.getZoneStrings();
//(java.lang.String[][]) [[America/Los_Angeles, 太平洋標準時間, PST, 太平洋日光節約時間, PDT], [PST, 太平洋標準時間, PST, 太平洋日光節約時間, PDT], [America/Denver, 山區標準時間, MST, 山區日光節約時間, MDT], [MST, 山區標準時間, MST, 山區日光節約時間, MDT], [America/Phoenix, 山區標準時間, MST, 山區日光節約時間, MDT], [PNT, 山區標準時間, MST, 山區日光節約時間, MDT], [America/Chicago, 中央標準時間, CST, 中央日光節約時間, CDT], [CST, 中央標準時間, CST, 中央日光節約時間, CDT], [America/New_York, 東方標準時間, EST, 東方日光節約時間, EDT], [EST, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Indianapolis, 東方標準時間, EST, 東方日光節約時間, EDT], [IET, 東方標準時間, EST, 東方日光節約時間, EDT], [Pacific/Honolulu, 夏威夷標準時間, HST, 夏威夷日光節約時間, HDT], [HST, 夏威夷標準時間, HST, 夏威夷日光節約時間, HDT], [America/Anchorage, 阿拉斯加標準時間, AKST, 阿拉斯加日光節約時間, AKDT], [AST, 阿拉斯加標準時間, AKST, 阿拉斯加日光節約時間, AKDT], [America/Halifax, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/St_Johns, 紐芬蘭標準時間, NST, 紐芬蘭日光節約時間, NDT], [CNT, 紐芬蘭標準時間, NST, 紐芬蘭日光節約時間, NDT], [Europe/Paris, 中歐時間, CET, 中歐夏令時間, CEST], [ECT, 中歐時間, CET, 中歐夏令時間, CEST], [GMT, 格林威治時間, GMT, 格林威治時間, GMT], [Africa/Casablanca, 西歐時間, WET, 西歐夏令時間, WEST], [Asia/Jerusalem, 以色列標準時間, IST, 以色列日光節約時間, IDT], [Asia/Tokyo, 日本標準時間, JST, 日本日光節約時間, JDT], [JST, 日本標準時間, JST, 日本日光節約時間, JDT], [Europe/Bucharest, 東歐時間, EET, 東歐夏令時間, EEST], [Asia/Shanghai, 中國標準時間, CST, 中國日光節約時間, CDT], [CTT, 中國標準時間, CST, 中國日光節約時間, CDT], [ACT, 中部標準時間 (北部各地區), CST, 中部夏令時間 (北部各地區), CST], [AET, 東方標準時間 (新南威爾斯), EST, 東方夏令時間 (新南威爾斯), EST], [AGT, 阿根廷時間, ART, 阿根廷夏令時間, ARST], [ART, 東歐時間, EET, 東歐夏令時間, EEST], [Africa/Abidjan, 格林威治時間, GMT, 格林威治時間, GMT], [Africa/Accra, 迦納平均時間, GMT, 迦納夏令時間, GHST], [Africa/Addis_Ababa, 東非時間, EAT, 東非夏令時間, EAST], [Africa/Algiers, 中歐時間, CET, 中歐夏令時間, CEST], [Africa/Asmera, 東非時間, EAT, 東非夏令時間, EAST], [Africa/Bamako, 格林威治時間, GMT, 格林威治時間, GMT], [Africa/Bangui, 西非時間, WAT, 西非夏令時間, WAST], [Africa/Banjul, 格林威治時間, GMT, 格林威治時間, GMT], [Africa/Bissau, 格林威治時間, GMT, 格林威治時間, GMT], [Africa/Blantyre, 中非時間, CAT, 中非夏令時間, CAST], [Africa/Brazzaville, 西非時間, WAT, 西非夏令時間, WAST], [Africa/Bujumbura, 中非時間, CAT, 中非夏令時間, CAST], [Africa/Cairo, 東歐時間, EET, 東歐夏令時間, EEST], [Africa/Ceuta, 中歐時間, CET, 中歐夏令時間, CEST], [Africa/Conakry, 格林威治時間, GMT, 格林威治時間, GMT], [Africa/Dakar, 格林威治時間, GMT, 格林威治時間, GMT], [Africa/Dar_es_Salaam, 東非時間, EAT, 東非夏令時間, EAST], [Africa/Djibouti, 東非時間, EAT, 東非夏令時間, EAST], [Africa/Douala, 西非時間, WAT, 西非夏令時間, WAST], [Africa/El_Aaiun, 西歐時間, WET, 西歐夏令時間, WEST], [Africa/Freetown, 格林威治平均時間, GMT, 獅子山夏令時間, SLST], [Africa/Gaborone, 中非時間, CAT, 中非夏令時間, CAST], [Africa/Harare, 中非時間, CAT, 中非夏令時間, CAST], [Africa/Johannesburg, 南非標準時間, SAST, 南非夏令時間, SAST], [Africa/Kampala, 東非時間, EAT, 東非夏令時間, EAST], [Africa/Khartoum, 東非時間, EAT, 東非夏令時間, EAST], [Africa/Kigali, 中非時間, CAT, 中非夏令時間, CAST], [Africa/Kinshasa, 西非時間, WAT, 西非夏令時間, WAST], [Africa/Lagos, 西非時間, WAT, 西非夏令時間, WAST], [Africa/Libreville, 西非時間, WAT, 西非夏令時間, WAST], [Africa/Lome, 格林威治時間, GMT, 格林威治時間, GMT], [Africa/Luanda, 西非時間, WAT, 西非夏令時間, WAST], [Africa/Lubumbashi, 中非時間, CAT, 中非夏令時間, CAST], [Africa/Lusaka, 中非時間, CAT, 中非夏令時間, CAST], [Africa/Malabo, 西非時間, WAT, 西非夏令時間, WAST], [Africa/Maputo, 中非時間, CAT, 中非夏令時間, CAST], [Africa/Maseru, 南非標準時間, SAST, 南非夏令時間, SAST], [Africa/Mbabane, 南非標準時間, SAST, 南非夏令時間, SAST], [Africa/Mogadishu, 東非時間, EAT, 東非夏令時間, EAST], [Africa/Monrovia, 格林威治時間, GMT, 格林威治時間, GMT], [Africa/Nairobi, 東非時間, EAT, 東非夏令時間, EAST], [Africa/Ndjamena, 西非時間, WAT, 西非夏令時間, WAST], [Africa/Niamey, 西非時間, WAT, 西非夏令時間, WAST], [Africa/Nouakchott, 格林威治時間, GMT, 格林威治時間, GMT], [Africa/Ouagadougou, 格林威治時間, GMT, 格林威治時間, GMT], [Africa/Porto-Novo, 西非時間, WAT, 西非夏令時間, WAST], [Africa/Sao_Tome, 格林威治時間, GMT, 格林威治時間, GMT], [Africa/Timbuktu, 格林威治時間, GMT, 格林威治時間, GMT], [Africa/Tripoli, 東歐時間, EET, 東歐夏令時間, EEST], [Africa/Tunis, 中歐時間, CET, 中歐夏令時間, CEST], [Africa/Windhoek, 西非時間, WAT, 西非夏令時間, WAST], [America/Adak, 夏威夷-阿留申群島標準時間, HAST, 夏威夷-阿留申群島日光節約時間, HADT], [America/Anguilla, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/Antigua, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/Araguaina, 巴西利亞時間, BRT, 巴西利亞夏令時間, BRST], [America/Argentina/Buenos_Aires, 阿根廷時間, ART, 阿根廷夏令時間, ARST], [America/Argentina/Catamarca, 阿根廷時間, ART, 阿根廷夏令時間, ARST], [America/Argentina/ComodRivadavia, 阿根廷時間, ART, 阿根廷夏令時間, ARST], [America/Argentina/Cordoba, 阿根廷時間, ART, 阿根廷夏令時間, ARST], [America/Argentina/Jujuy, 阿根廷時間, ART, 阿根廷夏令時間, ARST], [America/Argentina/La_Rioja, 阿根廷時間, ART, 阿根廷夏令時間, ARST], [America/Argentina/Mendoza, 阿根廷時間, ART, 阿根廷夏令時間, ARST], [America/Argentina/Rio_Gallegos, 阿根廷時間, ART, 阿根廷夏令時間, ARST], [America/Argentina/San_Juan, 阿根廷時間, ART, 阿根廷夏令時間, ARST], [America/Argentina/Tucuman, 阿根廷時間, ART, 阿根廷夏令時間, ARST], [America/Argentina/Ushuaia, 阿根廷時間, ART, 阿根廷夏令時間, ARST], [America/Aruba, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/Asuncion, 巴拉圭時間, PYT, 巴拉圭夏令時間, PYST], [America/Atikokan, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Atka, 夏威夷-阿留申群島標準時間, HAST, 夏威夷-阿留申群島日光節約時間, HADT], [America/Bahia, 巴西利亞時間, BRT, 巴西利亞夏令時間, BRST], [America/Barbados, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/Belem, 巴西利亞時間, BRT, 巴西利亞夏令時間, BRST], [America/Belize, 中央標準時間, CST, 中央日光節約時間, CDT], [America/Blanc-Sablon, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/Boa_Vista, 亞馬遜時間, AMT, 亞馬遜夏令時間, AMST], [America/Bogota, 哥倫比亞時間, COT, 哥倫比亞夏令時間, COST], [America/Boise, 山區標準時間, MST, 山區日光節約時間, MDT], [America/Buenos_Aires, 阿根廷時間, ART, 阿根廷夏令時間, ARST], [America/Cambridge_Bay, 山區標準時間, MST, 山區日光節約時間, MDT], [America/Campo_Grande, 亞馬遜時間, AMT, 亞馬遜夏令時間, AMST], [America/Cancun, 中央標準時間, CST, 中央日光節約時間, CDT], [America/Caracas, 委內瑞拉時間, VET, 委內瑞拉夏令時間, VEST], [America/Catamarca, 阿根廷時間, ART, 阿根廷夏令時間, ARST], [America/Cayenne, 法屬圭亞那時間, GFT, 法屬圭亞那夏令時間, GFST], [America/Cayman, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Chihuahua, 山區標準時間, MST, 山區日光節約時間, MDT], [America/Coral_Harbour, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Cordoba, 阿根廷時間, ART, 阿根廷夏令時間, ARST], [America/Costa_Rica, 中央標準時間, CST, 中央日光節約時間, CDT], [America/Cuiaba, 亞馬遜時間, AMT, 亞馬遜夏令時間, AMST], [America/Curacao, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/Danmarkshavn, 格林威治時間, GMT, 格林威治時間, GMT], [America/Dawson, 太平洋標準時間, PST, 太平洋日光節約時間, PDT], [America/Dawson_Creek, 山區標準時間, MST, 山區日光節約時間, MDT], [America/Detroit, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Dominica, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/Edmonton, 山區標準時間, MST, 山區日光節約時間, MDT], [America/Eirunepe, Acre 時間, ACT, Acre 夏令時間, ACST], [America/El_Salvador, 中央標準時間, CST, 中央日光節約時間, CDT], [America/Ensenada, 太平洋標準時間, PST, 太平洋日光節約時間, PDT], [America/Fort_Wayne, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Fortaleza, 巴西利亞時間, BRT, 巴西利亞夏令時間, BRST], [America/Glace_Bay, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/Godthab, 西格林蘭島時間, WGT, 西格林蘭島夏令時間, WGST], [America/Goose_Bay, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/Grand_Turk, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Grenada, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/Guadeloupe, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/Guatemala, 中央標準時間, CST, 中央日光節約時間, CDT], [America/Guayaquil, 厄瓜多爾時間, ECT, 厄瓜多爾夏令時間, ECST], [America/Guyana, 蓋亞那時間, GYT, 蓋亞那夏令時間, GYST], [America/Havana, Cuba Standard Time, CST, Cuba Daylight Time, CDT], [America/Hermosillo, 山區標準時間, MST, 山區日光節約時間, MDT], [America/Indiana/Indianapolis, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Indiana/Knox, 中央標準時間, CST, 中央日光節約時間, CDT], [America/Indiana/Marengo, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Indiana/Petersburg, 中央標準時間, CST, 中央日光節約時間, CDT], [America/Indiana/Vevay, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Indiana/Vincennes, 中央標準時間, CST, 中央日光節約時間, CDT], [America/Inuvik, 山區標準時間, MST, 山區日光節約時間, MDT], [America/Iqaluit, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Jamaica, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Jujuy, 阿根廷時間, ART, 阿根廷夏令時間, ARST], [America/Juneau, 阿拉斯加標準時間, AKST, 阿拉斯加日光節約時間, AKDT], [America/Kentucky/Louisville, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Kentucky/Monticello, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Knox_IN, 中央標準時間, CST, 中央日光節約時間, CDT], [America/La_Paz, 玻利維亞時間, BOT, 玻利維亞夏令時間, BOST], [America/Lima, 祕魯時間, PET, 祕魯夏令時間, PEST], [America/Louisville, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Maceio, 巴西利亞時間, BRT, 巴西利亞夏令時間, BRST], [America/Managua, 中央標準時間, CST, 中央日光節約時間, CDT], [America/Manaus, 亞馬遜時間, AMT, 亞馬遜夏令時間, AMST], [America/Martinique, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/Mazatlan, 山區標準時間, MST, 山區日光節約時間, MDT], [America/Mendoza, 阿根廷時間, ART, 阿根廷夏令時間, ARST], [America/Menominee, 中央標準時間, CST, 中央日光節約時間, CDT], [America/Merida, 中央標準時間, CST, 中央日光節約時間, CDT], [America/Mexico_City, 中央標準時間, CST, 中央日光節約時間, CDT], [America/Miquelon, 皮埃爾島及密克隆島標準時間, PMST, 皮埃爾島及密克隆島日光節約時間, PMDT], [America/Moncton, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/Montevideo, 烏拉圭時間, UYT, 烏拉圭夏令時間, UYST], [America/Monterrey, 中央標準時間, CST, 中央日光節約時間, CDT], [America/Montreal, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Montserrat, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/Nassau, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Nipigon, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Nome, 阿拉斯加標準時間, AKST, 阿拉斯加日光節約時間, AKDT], [America/Noronha, 費爾南多-迪諾羅尼亞時間, FNT, 費爾南多-迪諾羅尼亞夏令時間, FNST], [America/North_Dakota/Center, 中央標準時間, CST, 中央日光節約時間, CDT], [America/North_Dakota/New_Salem, 中央標準時間, CST, 中央日光節約時間, CDT], [America/Panama, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Pangnirtung, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Paramaribo, 蘇利南時間, SRT, 蘇利南夏令時間, SRST], [America/Port-au-Prince, 東方標準時間, EST, 東方日光節約時間, EDT], [America/Port_of_Spain, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/Porto_Acre, Acre 時間, ACT, Acre 夏令時間, ACST], [America/Porto_Velho, 亞馬遜時間, AMT, 亞馬遜夏令時間, AMST], [America/Puerto_Rico, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/Rainy_River, 中央標準時間, CST, 中央日光節約時間, CDT], [America/Rankin_Inlet, 中央標準時間, CST, 中央日光節約時間, CDT], [America/Recife, 巴西利亞時間, BRT, 巴西利亞夏令時間, BRST], [America/Regina, 中央標準時間, CST, 中央日光節約時間, CDT], [America/Rio_Branco, Acre 時間, ACT, Acre 夏令時間, ACST], [America/Rosario, 阿根廷時間, ART, 阿根廷夏令時間, ARST], [America/Santiago, 智利時間, CLT, 智利夏令時間, CLST], [America/Santo_Domingo, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/Sao_Paulo, 巴西利亞時間, BRT, 巴西利亞夏令時間, BRST], [America/Scoresbysund, 東格林島時間, EGT, 東格林島夏令時間, EGST], [America/Shiprock, 山區標準時間, MST, 山區日光節約時間, MDT], [America/St_Kitts, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/St_Lucia, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/St_Thomas, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/St_Vincent, 大西洋標準時間, AST, 大西洋日光節約時間, ADT], [America/Swift_Current, 中央標準時間, CST, 中央日光...

DateFormatSymbols smb=new DateFormatSymbols//(java.util.Locale.ENGLISH.US);
smb.getZoneStrings();
//(java.lang.String[][]) [[America/Los_Angeles, Pacific Standard Time, PST, Pacific Daylight Time, PDT], [PST, Pacific Standard Time, PST, Pacific Daylight Time, PDT], [America/Denver, Mountain Standard Time, MST, Mountain Daylight Time, MDT], [MST, Mountain Standard Time, MST, Mountain Daylight Time, MDT], [America/Phoenix, Mountain Standard Time, MST, Mountain Daylight Time, MDT], [PNT, Mountain Standard Time, MST, Mountain Daylight Time, MDT], [America/Chicago, Central Standard Time, CST, Central Daylight Time, CDT], [CST, Central Standard Time, CST, Central Daylight Time, CDT], [America/New_York, Eastern Standard Time, EST, Eastern Daylight Time, EDT], [EST, Eastern Standard Time, EST, Eastern Daylight Time, EDT], [America/Indianapolis, Eastern Standard Time, EST, Eastern Daylight Time, EDT], [IET, Eastern Standard Time, EST, Eastern Daylight Time, EDT], [Pacific/Honolulu, Hawaii Standard Time, HST, Hawaii Daylight Time, HDT], [HST, Hawaii Standard Time, HST, Hawaii Daylight Time, HDT], [America/Anchorage, Alaska Standard Time, AKST, Alaska Daylight Time, AKDT], [AST, Alaska Standard Time, AKST, Alaska Daylight Time, AKDT], [America/Halifax, Atlantic Standard Time, AST, Atlantic Daylight Time, ADT], [America/St_Johns, Newfoundland Standard Time, NST, Newfoundland Daylight Time, NDT], [CNT, Newfoundland Standard Time, NST, Newfoundland Daylight Time, NDT], [Europe/Paris, Central European Time, CET, Central European Summer Time, CEST], [ECT, Central European Time, CET, Central European Summer Time, CEST], [GMT, Greenwich Mean Time, GMT, Greenwich Mean Time, GMT], [Africa/Casablanca, Western European Time, WET, Western European Summer Time, WEST], [Asia/Jerusalem, Israel Standard Time, IST, Israel Daylight Time, IDT], [Asia/Tokyo, Japan Standard Time, JST, Japan Daylight Time, JDT], [JST, Japan Standard Time, JST, Japan Daylight Time, JDT], [Europe/Bucharest, Eastern European Time, EET, Eastern European Summer Time, EEST], [Asia/Shanghai, China Standard Time, CST, China Daylight Time, CDT], [CTT, China Standard Time, CST, China Daylight Time, CDT], [ACT, Central Standard Time (Northern Territory), CST, Central Summer Time (Northern Territory), CST], [AET, Eastern Standard Time (New South Wales), EST, Eastern Summer Time (New South Wales), EST], [AGT, Argentine Time, ART, Argentine Summer Time, ARST], [ART, Eastern European Time, EET, Eastern European Summer Time, EEST], [Africa/Abidjan, Greenwich Mean Time, GMT, Greenwich Mean Time, GMT], [Africa/Accra, Ghana Mean Time, GMT, Ghana Summer Time, GHST], [Africa/Addis_Ababa, Eastern African Time, EAT, Eastern African Summer Time, EAST], [Africa/Algiers, Central European Time, CET, Central European Summer Time, CEST], [Africa/Asmara, Eastern African Time, EAT, Eastern African Summer Time, EAST], [Africa/Asmera, Eastern African Time, EAT, Eastern African Summer Time, EAST], [Africa/Bamako, Greenwich Mean Time, GMT, Greenwich Mean Time, GMT], [Africa/Bangui, Western African Time, WAT, Western African Summer Time, WAST], [Africa/Banjul, Greenwich Mean Time, GMT, Greenwich Mean Time, GMT], [Africa/Bissau, Greenwich Mean Time, GMT, Greenwich Mean Time, GMT], [Africa/Blantyre, Central African Time, CAT, Central African Summer Time, CAST], [Africa/Brazzaville, Western African Time, WAT, Western African Summer Time, WAST], [Africa/Bujumbura, Central African Time, CAT, Central African Summer Time, CAST], [Africa/Cairo, Eastern European Time, EET, Eastern European Summer Time, EEST], [Africa/Ceuta, Central European Time, CET, Central European Summer Time, CEST], [Africa/Conakry, Greenwich Mean Time, GMT, Greenwich Mean Time, GMT], [Africa/Dakar, Greenwich Mean Time, GMT, Greenwich Mean Time, GMT], [Africa/Dar_es_Salaam, Eastern African Time, EAT, Eastern African Summer Time, EAST], [Africa/Djibouti, Eastern African Time, EAT, Eastern African Summer Time, EAST], [Africa/Douala, Western African Time, WAT, Western African Summer Time, WAST], [Africa/El_Aaiun, Western European Time, WET, Western European Summer Time, WEST], [Africa/Freetown, Greenwich Mean Time, GMT, Sierra Leone Summer Time, SLST], [Africa/Gaborone, Central African Time, CAT, Central African Summer Time, CAST], [Africa/Harare, Central African Time, CAT, Central African Summer Time, CAST], [Africa/Johannesburg, South Africa Standard Time, SAST, South Africa Summer Time, SAST], [Africa/Kampala, Eastern African Time, EAT, Eastern African Summer Time, EAST], [Africa/Khartoum, Eastern African Time, EAT, Eastern African Summer Time, EAST], [Africa/Kigali, Central African Time, CAT, Central African Summer Time, CAST], [Africa/Kinshasa, Western African Time, WAT, Western African Summer Time, WAST], [Africa/Lagos, Western African Time, WAT, Western African Summer Time, WAST], [Africa/Libreville, Western African Time, WAT, Western African Summer Time, WAST], [Africa/Lome, Greenwich Mean Time, GMT, Greenwich Mean Time, GMT], [Africa/Luanda, Western African Time, WAT, Western African Summer Time, WAST], [Africa/Lubumbashi, Central African Time, CAT, Central African Summer Time, CAST], [Africa/Lusaka, Central African Time, CAT, Central African Summer Time, CAST], [Africa/Malabo, Western African Time, WAT, Western African Summer Time, WAST], [Africa/Maputo, Central African Time, CAT, Central African Summer Time, CAST], [Africa/Maseru, South Africa Standard Time, SAST, South Africa Summer Time, SAST], [Africa/Mbabane, South Africa Standard Time, SAST, South Africa Summer Time, SAST], [Africa/Mogadishu, Eastern African Time, EAT, Eastern African Summer Time, EAST], [Africa/Monrovia, Greenwich Mean Time, GMT, Greenwich Mean Time, GMT], [Africa/Nairobi, Eastern African Time, EAT, Eastern African Summer Time, EAST], [Africa/Ndjamena, Western African Time, WAT, Western African Summer Time, WAST], [Africa/Niamey, Western African Time, WAT, Western African Summer Time, WAST], [Africa/Nouakchott, Greenwich Mean Time, GMT, Greenwich Mean Time, GMT], [Africa/Ouagadougou, Greenwich Mean Time, GMT, Greenwich Mean Time, GMT], [Africa/Porto-Novo, Western African Time, WAT, Western African Summer Time, WAST], [Africa/Sao_Tome, Greenwich Mean Time, GMT, Greenwich Mean Time, GMT], [Africa/Timbuktu, Greenwich Mean Time, GMT, Greenwich Mean Time, GMT], [Africa/Tripoli, Eastern European Time, EET, Eastern European Summer Time, EEST], [Africa/Tunis, Central European Time, CET, Central European Summer Time, CEST], [Africa/Windhoek, Western African Time, WAT, Western African Summer Time, WAST], [America/Adak, Hawaii-Aleutian Standard Time, HAST, Hawaii-Aleutian Daylight Time, HADT], [America/Anguilla, Atlantic Standard Time, AST, Atlantic Daylight Time, ADT], [America/Antigua, Atlantic Standard Time, AST, Atlantic Daylight Time, ADT], [America/Araguaina, Brasilia Time, BRT, Brasilia Summer Time, BRST], [America/Argentina/Buenos_Aires, Argentine Time, ART, Argentine Summer Time, ARST], [America/Argentina/Catamarca, Argentine Time, ART, Argentine Summer Time, ARST], [America/Argentina/ComodRivadavia, Argentine Time, ART, Argentine Summer Time, ARST], [America/Argentina/Cordoba, Argentine Time, ART, Argentine Summer Time, ARST], [America/Argentina/Jujuy, Argentine Time, ART, Argentine Summer Time, ARST], [America/Argentina/La_Rioja, Argentine Time, ART, Argentine Summer Time, ARST], [America/Argentina/Mendoza, Argentine Time, ART, Argentine Summer Time, ARST], [America/Argentina/Rio_Gallegos, Argentine Time, ART, Argentine Summer Time, ARST], [America/Argentina/San_Juan, Argentine Time, ART, Argentine Summer Time, ARST], [America/Argentina/Tucuman, Argentine Time, ART, Argentine Summer Time, ARST], [America/Argentina/Ushuaia, Argentine Time, ART, Argentine Summer Time, ARST], [America/Aruba, Atlantic Standard Time, AST, Atlantic Daylight Time, ADT], [America/Asuncion, Paraguay Time, PYT, Paraguay Summer Time, PYST], [America/Atikokan, Eastern Standard Time, EST, Eastern Daylight Time, EDT], [America/Atka, Hawaii-Aleutian Standard Time, HAST, Hawaii-Aleutian Daylight Time, HADT], [America/Bahia, Brasilia Time, BRT, Brasilia Summer Time, BRST], [America/Barbados, Atlantic Standard Time, AST, Atlantic Daylight Time, ADT], [America/Belem, Brasilia Time, BRT, Brasilia Summer Time, BRST], [America/Belize, Central Standard Time, CST, Central Daylight Time, CDT], [America/Blanc-Sablon, Atlantic Standard Time, AST, Atlantic Daylight Time, ADT], [America/Boa_Vista, Amazon Time, AMT, Amazon Summer Time, AMST], [America/Bogota, Colombia Time, COT, Colombia Summer Time, COST], [America/Boise, Mountain Standard Time, MST, Mountain Daylight Time, MDT], [America/Buenos_Aires, Argentine Time, ART, Argentine Summer Time, ARST], [America/Cambridge_Bay, Mountain Standard Time, MST, Mountain Daylight Time, MDT], [America/Campo_Grande, Amazon Time, AMT, Amazon Summer Time, AMST], [America/Cancun, Central Standard Time, CST, Central Daylight Time, CDT], [America/Caracas, Venezuela Time, VET, Venezuela Summer Time, VEST], [America/Catamarca, Argentine Time, ART, Argentine Summer Time, ARST], [America/Cayenne, French Guiana Time, GFT, French Guiana Summer Time, GFST], [America/Cayman, Eastern Standard Time, EST, Eastern Daylight Time, EDT], [America/Chihuahua, Mountain Standard Time, MST, Mountain Daylight Time, MDT], [America/Coral_Harbour, Eastern Standard Time, EST, Eastern Daylight Time, EDT], [America/Cordoba, Argentine Time, ART, Argentine Summer Time, ARST], [America/Costa_Rica, Central Standard Time, CST, Central Daylight Time, CDT], [America/Cuiaba, Amazon Time, AMT, Amazon Summer Time, AMST], [America/Curacao, Atlantic Standard Time, AST, Atlantic Daylight Time, ADT], [America/Danmarkshavn, Greenwich Mean Time, GMT, Greenwich Mean Time, GMT], [America/Dawson, Pacific Standard Time, PST, Pacific Daylight Time, PDT], [America/Dawson_Creek, Mountain Standard Time, MST, Mountain Daylight Time, MDT], [America/Detroit, Eastern Standard Time, EST, Eastern Daylight Time, EDT], [America/Dominica, Atlantic Standard Time, AST, Atlantic Daylight Time, ADT], [America/Edmonton, Mountain Standard Time, ...
DateFormatSymbols smb=new DateFormatSymbols();
smb.getAvailableLocales();
//(java.util.Locale[]) [ja_JP, es_PE, en, ja_JP_JP, es_PA, sr_BA, mk, es_GT, ar_AE, no_NO, sq_AL, bg, ar_IQ, ar_YE, hu, pt_PT, el_CY, ar_QA, mk_MK, sv, de_CH, en_US, fi_FI, is, cs, en_MT, sl_SI, sk_SK, it, tr_TR, zh, th, ar_SA, no, en_GB, sr_CS, lt, ro, en_NZ, no_NO_NY, lt_LT, es_NI, nl, ga_IE, fr_BE, es_ES, ar_LB, ko, fr_CA, et_EE, ar_KW, sr_RS, es_US, es_MX, ar_SD, in_ID, ru, lv, es_UY, lv_LV, iw, pt_BR, ar_SY, hr, et, es_DO, fr_CH, hi_IN, es_VE, ar_BH, en_PH, ar_TN, fi, de_AT, es, nl_NL, es_EC, zh_TW, ar_JO, be, is_IS, es_CO, es_CR, es_CL, ar_EG, en_ZA, th_TH, el_GR, it_IT, ca, hu_HU, fr, en_IE, uk_UA, pl_PL, fr_LU, nl_BE, en_IN, ca_ES, ar_MA, es_BO, en_AU, sr, zh_SG, pt, uk, es_SV, ru_RU, ko_KR, vi, ar_DZ, vi_VN, sr_ME, sq, ar_LY, ar, zh_CN, be_BY, zh_HK, ja, iw_IL, bg_BG, in, mt_MT, es_PY, sl, fr_FR, cs_CZ, it_CH, ro_RO, es_PR, en_CA, de_DE, ga, de_LU, de, es_AR, sk, ms_MY, hr_HR, en_SG, da, mt, pl, ar_OM, tr, th_TH_TH, el, ms, sv_SE, da_DK, es_HN]


DateFormatSymbols smb=new DateFormatSymbols//(java.util.Locale.ENGLISH.US);
smb.getAvailableLocales();
//(java.util.Locale[]) [ja_JP, es_PE, en, ja_JP_JP, es_PA, sr_BA, mk, es_GT, ar_AE, no_NO, sq_AL, bg, ar_IQ, ar_YE, hu, pt_PT, el_CY, ar_QA, mk_MK, sv, de_CH, en_US, fi_FI, is, cs, en_MT, sl_SI, sk_SK, it, tr_TR, zh, th, ar_SA, no, en_GB, sr_CS, lt, ro, en_NZ, no_NO_NY, lt_LT, es_NI, nl, ga_IE, fr_BE, es_ES, ar_LB, ko, fr_CA, et_EE, ar_KW, sr_RS, es_US, es_MX, ar_SD, in_ID, ru, lv, es_UY, lv_LV, iw, pt_BR, ar_SY, hr, et, es_DO, fr_CH, hi_IN, es_VE, ar_BH, en_PH, ar_TN, fi, de_AT, es, nl_NL, es_EC, zh_TW, ar_JO, be, is_IS, es_CO, es_CR, es_CL, ar_EG, en_ZA, th_TH, el_GR, it_IT, ca, hu_HU, fr, en_IE, uk_UA, pl_PL, fr_LU, nl_BE, en_IN, ca_ES, ar_MA, es_BO, en_AU, sr, zh_SG, pt, uk, es_SV, ru_RU, ko_KR, vi, ar_DZ, vi_VN, sr_ME, sq, ar_LY, ar, zh_CN, be_BY, zh_HK, ja, iw_IL, bg_BG, in, mt_MT, es_PY, sl, fr_FR, cs_CZ, it_CH, ro_RO, es_PR, en_CA, de_DE, ga, de_LU, de, es_AR, sk, ms_MY, hr_HR, en_SG, da, mt, pl, ar_OM, tr, th_TH_TH, el, ms, sv_SE, da_DK, es_HN]

Eclipse 3.3 新功能Mylyn 線上課程及文章

Eclipse 3.3(Europa)中的Mylyn(之前叫Mylar)是以任務導向的UI,可用來簡化IDE中大型系統的開發所造成的資訊副載(Information Overloading),簡單的說就是可以幫你把大專案的開發簡化成任務導向,此外還可以做為Bug追蹤等應用,或許講了這麼多,還是不了解,不過透過下面的一分線上課程及兩篇文章,只要仔細研讀,就知道這項新功能的用處了:

Webinar: Task-Focused Programming with Mylyn by Mik Kersten (56 min, Oct 2006)

Task Focused Programming with [Mylyn], Part 1: Integrated task management for Eclipse by Mik Kersten (Oct 2006)

Task Focused Programming with [Mylyn], Part 2: Automated context management for Eclipse by Mik Kersten (Oct 2006)

以上連結出於Eclipse官方網站。

POI HSSFCellStyle

HSSFCellStyle用來設定儲存格格式、字型、顏色、字大小等。

excel XLS格式所用的CellStyle其使用觀念類似GIF的索引色票,
也就是說你如果將xls內的某個cellStyle變更,則其他之前設到這個cellStyle的儲存格都會跟著變,
要特別注意。
(若要分辨個別cell所使用的style是否相同可由cell.getCellStyle取得style再由style.getIndex()取得索引編號,藉此來分辨是否使用同一索引的style)

//範例

HSSFCellStyle style=wb.createCellStyle();
HSSFFont font=wb.createFont();
font.setFontName("新細明體");
font.setColor(HSSFColor.RED.index);
style.setFont(font);
cell.setCellStyle(style);
style.setFillForegroundColor((short)HSSFColor.LIGHT_BLUE.index);
style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

POI調整column欄寬

sheet.setColumnWidth((short)0,(short)(256*10));

  • 第一個參數是column index,由0開始
  • 第二個參數是寬度256為一個字

POI設定列Row高度

sheet.createRow(0).setHeight((short)(20*50));

注意單位是Twips,若要設xx points則要乘以20,最後記得轉short

POI 設定sheet名稱為中文

HSSFSheet sheet=wb.createSheet();
wb.setSheetName(i,"分頁"+String.valueOf(i),(short)HSSFWorkbook.ENCODING_UTF_16);

結果:

2007年8月9日 星期四

用javascript清空HTML<select>內所有option


<script>
var sel=document.frmName.selName;
//clear listbox
for(var i=sel.options.length-1;i>=0;i--)
{ sel.options.remove(i); }
</script>