作者xlk (深深)
看板java
标题Re: [问题] 请问如何将code不要写死,不需要重新编쐠…
时间Tue Oct 20 14:55:23 2009
※ 引述《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)
1F:推 nation6238:感谢你热心解答~目前仔细阅读思考你撰写 OO 10/21 01:46
2F:推 nation6238:比照你写的OO架构,再写一个TXT让人自由设定.算是把死 10/21 01:53
3F:→ nation6238:变成活的 10/21 01:54
4F:推 hate9527:properties or xml 10/21 12:53
5F:推 nation6238:网页用AJAX,因该可读TXTorXML随时改变页面(UI)排版 10/21 21:06
6F:推 adrianc:我想推 唉低@鸡没有 & 怕死我 耶.... 10/26 13:59