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