Re: [問題] 請問如何將code不要寫死,不需要重新編쐠…
※ 引述《nation6238 (挺)》之銘言:
: (更新說明方式)請問大家如何將code不要寫死,不需要重新編譯code就有擴充性
我想問這跟你要解決的問題有什麼關係?
[delete]
: PS:抓出google calendar資料目的是要寫入自己DB,日後要做資料上研究分析
如果是自己做研究, 不能重新編譯的理由是什麼?
[delete]
: 現在要把程式變成活(不能重新編譯)的改成
[delete]
: 目前我知道重新改寫解決這問題,如果
: 不能改寫code重新編譯,要如何 設計 撰寫 呢?
又不能改寫, 談設計撰寫沒有意義不是嗎? 還是我該問哪裡可以改?
不然只能從外部以adapter處理吧?
補: 筆誤,是adapter不是adaptor…
[delete]
: while (calendar.getTime().compareTo(date2) <= 0) {//一天一天抓取,解決
: google一次只能抓取25DATA
測試時沒有遇到這個問題, 或是你會想批次處理再參考連結資料修改程式
可以一次做多筆insert,query,update,delete
http://code.google.com/intl/en/apis/calendar/data/2.0/
developers_guide_java.html#batch
下面是我改寫的扣的, 如果不能改寫應該就不用看了..
當然這也不OO就是了…
public static void main(String args[]) throws IOException, ServiceException {
CalendarService myService = new CalendarService("椅可是先跑");
myService.setUserCredentials("唉低@雞沒有.com", "怕死我");
// Prepare Query
URL feedUrl = new URL(
"http://www.google.com/calendar/feeds/default/private/full");
CalendarQuery myQuery = new CalendarQuery(feedUrl);
myQuery.setMinimumStartTime(
DateTime.parseDateTime("2009-10-10T00:00:00"));
myQuery.setMaximumStartTime(
DateTime.parseDateTime("2009-10-22T23:59:59"));
// Query feeds
CalendarEventFeed resultFeed =
myService.query(myQuery, CalendarEventFeed.class);
// Print the number of feeds
System.out.println("Total entries: " + resultFeed.getTotalResults());
// Replace it by your way 吃AJAX送來的____?
List<String> titles = getTitleNames();
processFeeds(resultFeed, titles);
}
private static void processFeeds(
CalendarEventFeed feeds, List<String> titles) {
// *以list大小動態產生array
int eventCount[] = new int[titles.size()];
long eventTotalTime[] = new long[titles.size()];
// 計算各事件時間與數量
for (CalendarEventEntry entry : feeds.getEntries()) {
// 日曆事件title
String title = entry.getTitle().getPlainText();
if (titles.contains(title)) {// 看看有沒有在List裡!0m
When t = entry.getTimes().get(0);
// 計算event花費時間, 許多時間類別內部以long type表示時間絕對值
long period =
t.getEndTime().getValue() - t.getStartTime().getValue();
// 對照title在list裡的位置來紀錄event的次數與總時數
int index = titles.indexOf(title);
eventCount[index]++;
eventTotalTime[index] += period;
// 印出event資訊
System.out.print("事件: " + title);
System.out.print(" 開始: " + t.getStartTime().toUiString());
System.out.print(" 結束: " + t.getEndTime().toUiString());
System.out.println(" 花費時間: "+ period /1000 /60f /60f + "小時");
}
}
for (int i = 0; i < titles.size(); i++) {
System.out.print("事件: " + titles.get(i));
System.out.println(" 共 " + eventCount[i] + "次 "
+ (eventTotalTime[i] / 1000 / 60f / 60f) + "小時");
}
}
private static List<String getTitleNames() {
// 測試資料嘛…
List<String> titles = new ArrayList<String>();
titles.add("漢堡王吃早餐");
titles.add("meeting");
titles.add("聊天");
return titles;
}
--
沒有這麼簡單吧?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.223.212.4
※ 編輯: xlk 來自: 61.223.210.167 (10/20 21:18)
推
10/21 01:46, , 1F
10/21 01:46, 1F
推
10/21 01:53, , 2F
10/21 01:53, 2F
→
10/21 01:54, , 3F
10/21 01:54, 3F
推
10/21 12:53, , 4F
10/21 12:53, 4F
推
10/21 21:06, , 5F
10/21 21:06, 5F
推
10/26 13:59, , 6F
10/26 13:59, 6F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 10 篇):