1. Hướng dẫn đọc file excel regis.agu.edu.vn ==> import sqllite (Đăng kí học phần trực tuyến)
- Ý tưởng: đọc từng dòng, từng cột dựa vào thư viện poi3.jar
HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem); HSSFSheet mySheet = myWorkBook.getSheetAt(0); Iterator rowIter = mySheet.rowIterator(); while (rowIter.hasNext()) { HSSFRow myRow = (HSSFRow) rowIter.next(); if(myRow.getRowNum()>=13) { Iterator cellIter = myRow.cellIterator(); while (cellIter.hasNext()) { HSSFCell myCell = (HSSFCell) cellIter.next(); Log.d("NguyenNgocTan", "" + myCell.getStringCellValue().toString()+" socot:"+myCell.getColumnIndex()); int SOCOT=myCell.getColumnIndex(); if(SOCOT==1) MMH=myCell.getStringCellValue().toString(); else if(SOCOT==6) TENMH=myCell.getStringCellValue(); else if(SOCOT==34) PHONGHOC=myCell.getStringCellValue(); else if(SOCOT==26) THU=myCell.getStringCellValue(); else if(SOCOT==28) TIETBATDAU=myCell.getStringCellValue(); else if(SOCOT==29) SOTIET=myCell.getStringCellValue(); else if(SOCOT==36) TGHOC=myCell.getStringCellValue(); } }
- Giải thích:
+ myRow.getRowNum()>=13: Đọc dòng chứa nội dung mã môn học đầu tiên
+ SOCOT=GIÁ TRỊ: Do số cột trên file excel của regis quá nhiều. Có những cột null giá trị do trộn ô (merge cell). Để biết số cột và giá trị như thế nào. Chúng ta dựa vào dòng
Log.d("NguyenNgocTan", "" + myCell.getStringCellValue().toString()+" socot:"+myCell.getColumnIndex());
==> Ý nghĩa là để Log ra nội dung cột và thứ tự cột
2. Xem TKB theo tuần.
- Hình ảnh Cột tuần trong TKB của regis.agu.edu.vn (ĐH AN GIANG)
- Ý tưởng:
B1: Đọc từng ký tự trong cột thời gian học
B2: Kiểm tra xem số tuần học
+ Nếu số tuần học >=10. Thì gán số tuần học =số tuần học % 10 (VD: 11%10=1 -> tuần thứ 11)
+ Nếu số tuần học <=10. Thì giữ nguyên số tuần được chọn.
- Code tham khảo: (Cột thời gian học) ThoiGianHoc.Substring((SoTuanHoc-1),SoTuanHoc).equals(SoTuanHoc)
3. Tính số tuần, thứ trong tuần tuần dựa vào thời gian bắt đầu nhập học và thời gian đang chọn
- Ý tưởng:
+ B1: Lấy thời gian đang chọn - thời gian bắt đầu =A thời gian
+ B2: Tính số tuần =(A thời gian / 1000*60*60*24)/7
+ B3: Tính thứ trong tuần (Lưu ý: Thứ =1 là chủ nhật):
Calendar c = Calendar.getInstance(); c.setTime(Common.Static_NGAY_THANG_NAM_SELECT); int Thu_TrongTuan = c.get(Calendar.DAY_OF_WEEK);
- Code tham khảo
Long TRU_THOIGIAN= (Common.Static_NGAY_THANG_NAM_SELECT.getTime()-Common.Static_NGAY_THANG_NAM_CSDL.getTime()); int SoTuan=Integer.valueOf(String.valueOf((TRU_THOIGIAN/(1000*60*60*24))/7)); Calendar c = Calendar.getInstance(); c.setTime(Common.Static_NGAY_THANG_NAM_SELECT); // yourdate is a object of type Date int Thu_TrongTuan = c.get(Calendar.DAY_OF_WEEK); if(Thu_TrongTuan==1) txt_thu.setText("CHỦ NHẬT"); else txt_thu.setText("THỨ "+(Thu_TrongTuan));
4. Tải Ứng Dụng Xem Thời Khóa Biểu ĐHAG (Regis.agu.edu.vn): Đang Cập Nhật Ứng Dụng Trong TG Sớm Nhất