java 板


LINE

(更新說明方式)請問大家如何將code不要寫死,不需要重新編譯code就有擴充性 對不起,之前描述太簡略,讓大家都聽不懂。 如果聽不懂我說的問題,麻煩請大家跟我說。 1.1 寫入google calendar 網頁 寫一個HTML網頁,讓使用者可以選"兩個title選項"選擇一POST到servlet, 透過servlet(使用gdate)把選好title data 寫入 Google 日曆 PS:google calendar 目的是 記錄使用者資料 ----------------------------------------------------------------------------- 1.2 抓取google calendar 程式 已知寫入google日曆有兩個事件選項。 自己用gdata for java 抓取 google calendar 每一天所有 title , 之後並區分(分類)title再寫入DB. PS:一天中會做"看書"、"吃飯" 、"看書"...等 很多title, 從 google calendar 全部抓出title 並計算每個title花費時間...等。 再區分(分類)title寫入自己DB" 以上Code已經寫好了 PS:抓出google calendar資料目的是要寫入自己DB,日後要做資料上研究分析 -------------------------------------------------------------------------------------------------------------------------------- 現在要把程式變成活(不能重新編譯)的改成 2.1 寫入google calendar 網頁 如果要將原本html網頁兩個選項"擴充,新增" 第多個 title選項 (三個四個以上) 2.2 抓取google calendar 程式 再抓取google calendar時,必須先得知(html網頁)有多少title並將title區分分類並寫 入自己的DB PS:如果 寫入google calendar 網頁 有3個title ,那 抓取google calendar 程式 必 須要區分分類 3個title 寫入自己DB PS:如果 寫入google calendar 網頁 有4個title ,那 抓取google calendar 程式 必 須要區分分類 4個title 寫入自己DB -------------------------------------------------------------------------------------------------------------------------------- 目前我知道重新改寫解決這問題,如果 不能改寫code重新編譯,要如何 設計 撰寫 呢? ========================================================================================== public class test { private static String id = "[email protected]"; private static String pw = "pw"; private static String StartYear = "2009"; private static String StartMonths = "08"; private static String StartDay = "01"; private static String EndYear = "2009"; private static String EndMonths = "10"; private static String EndDay = "01"; private static float titelnum011 = 0; private static float titelnum012 = 0; private static String titel011 = "日曆"; private static String titel012 = "meeting"; private static int num01 = 0; private static int daynum011 = 0; private static int daynum012 = 0; public static void main(String args[]) throws ServiceException, IOException, ParseException { SimpleDateFormat formatter = new SimpleDateFormat("yyyy" + "-" + "MM" + "-" + "dd"); Date date1 = formatter.parse(StartYear + "-" + StartMonths + "-" + StartDay); Calendar calendar = Calendar.getInstance(); calendar.setTime(date1); Date date2 = formatter.parse(EndYear + "-" + EndMonths + "-" + EndDay); long total = (date2.getTime() - date1.getTime()) / (1000 * 60 * 60 * 24) + 1; System.out.println("總共 " + total + " 天數"); //============================================================================= CalendarService myService = new CalendarService("exampleCo-exampleApp-1"); myService.setUserCredentials(id, pw); URL feedUrl = new URL("http://www.google.com/calendar/feeds/default/private/full"); CalendarQuery myQuery = new CalendarQuery(feedUrl); int day = 0; //============================================================================= while (calendar.getTime().compareTo(date2) <= 0) {//一天一天抓取,解決 google一次只能抓取25DATA int y = calendar.get(Calendar.YEAR); int m = calendar.get(Calendar.MONTH) + 1; int d = calendar.get(Calendar.DATE); day = day + 1; String yyy = String.valueOf(y); String mmm; if (m < 10) { mmm = String.valueOf(m); mmm = "0" + mmm;//符合google api 輸入日期格式 } else { mmm = String.valueOf(m); } String ddd; if (d < 10) { ddd = String.valueOf(d); ddd = "0" + ddd;//符合google api 輸入日期格式 } else { ddd = String.valueOf(d); } //============================================================================= myQuery.setMinimumStartTime(DateTime.parseDateTime(yyy + "-" + mmm + "-" + ddd + "T00:00:00")); myQuery.setMaximumStartTime(DateTime.parseDateTime(yyy + "-" + mmm + "-" + ddd + "T23:59:59")); // Send the request and receive the response: CalendarEventFeed resultFeed = myService.query(myQuery, CalendarEventFeed.class); int size = resultFeed.getTotalResults();//取得日曆當天是否有資料筆 數 if (size != 0) { for (int i = 0; i < resultFeed.getEntries().size(); i++) { CalendarEventEntry entry = resultFeed.getEntries().get(i); String title = entry.getTitle().getPlainText();//日曆事件 //============================================================================= When t = entry.getTimes().get(0); DateTime start = t.getStartTime(); String s = start.toUiString(); int aa = (int) start.getValue();//日曆title開始時間 DateTime end = t.getEndTime(); String e = end.toUiString(); int bb = (int) end.getValue();//日曆title結束時間 int cc = (bb - aa) / 1000 / 60;//計算日曆title花費時間 float dd = (float) (cc / 60f); //========================================================== // 當 輸入(post)google日曆事件選項 新增第三筆" // 再 抓取google資料時必須要改寫並"新增第三筆"並區分事件 (titel)分別寫入DB // 如何把下程式碼寫活的, 具備擴充性, if (title.equals(titel011) || title.equals(titel012)) { System.out.println(); System.out.println("開始 " + s); System.out.println("事件 " + (i + 1) + " " + title); System.out.println("結束 " + e); System.out.println("花費時間 " + dd + "小時"); System.out.println("~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~"); if (title.equals(titel011)) { daynum011 = daynum011 + 1; titelnum011 = titelnum011 + dd; } if (title.equals(titel012)) { daynum012 = daynum012 + 1; titelnum012 = titelnum012 + dd; } //========================================================== }//for }//if } calendar.add(Calendar.DAY_OF_YEAR, 1);//while//日期加一天 }//while //統計各項事件 總次數 總時數 System.out.println("事件一 " + titel011 + " 總次數 " + daynum011 + " 總時數 " + titelnum011); System.out.println("事件二 " + titel012 + " 總次數 " + daynum012 + " 總時數 " + titelnum012); } } --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.240.197.117
1F:→ xlk:完全不OO 如果不能改寫重新編譯就砍掉重練XD 10/19 20:14
2F:推 slalala:從CODE看 的確不OO 10/19 20:33
3F:→ xlk:程式中判斷是否符合title的部分 若不改寫獨立到class外怎麼活? 10/19 20:44
4F:推 slalala:感覺沒有那麼慘 如果OO化 應該可透過小技巧加上IoC 10/20 01:15
5F:→ xlk:寫活是什麼意思? 跟不能重新編譯不是矛盾嗎? 原po請解釋一下ꀠ 10/20 02:07
6F:推 costbook:我猜是如何設計UI的問題 10/20 05:57
7F:→ nation6238:寫活的意似是 隨時能增加 title.equals("事件一") 10/20 13:26
8F:→ nation6238:隨時增加或減少title.equals判斷 10/20 13:28
9F:→ nation6238:網頁UI部分因該可以用AJAX辦到吧 10/20 13:31







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP