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