안드로이드 시간표 어플리케이션을 만들어보고 있는데요. 다른 부분은 어느정도 예제 참고하고 문법 공부하고 하다보니 구현하였는데, 수업 예외처리 하는 부분이 너무 어려워서 질문드리게 되었습니다. 인터넷에 보니까 sql문에 A.종료일자 >= B.시작일자 AND A.시작일자 <= B.종료일자 공식을 사용해도 된다고 하던데 sqlite에도 사용 가능한건지 아닌지도 잘 모르겠습니다.
일단 도움받고 싶은 것은 수업시간대가 겹치지 않게 하는 것입니다. 밑의 데이터가 있다고 가정할 때
---------------------------------------------------------------------------------------------------------------
_id subjectname week starttime endtime studyroom professor color memo
1 데이터베이스 목요일 9:00 11:00
2 소프트웨어공학 화요일 13:00 15:00
3 리눅스 수요일 11:00 13:00
4 컴퓨터프로그래밍 월요일 15:00 17:00
-------------------------------------------------------------------------------------------------------------
운영체제 화요일 14:00 16:00 값을 집어 넣을 때 시간이 겹쳐서 이 시간대에 수업이 있다는 오류를 출력하고 데이터를 넣지 않는 예외처리를 구현해보고 싶습니다. 제가 생각하는대로 코딩을 하여 사진을 올려보았습니다. 예외처리를 처리하는 메소드를 하나 만들고 값을 입력하고 버튼을눌렀을 때 이 메소드를 호출하고 메소드에 들어가는 값이랑 데이터베이스에 있는 첫번째 레코드부터 마지막레코드까지 루프를 돌려 확인하고 카운터 값이 오르면 중복시간표가 존재하는 것이고, 카운터가 1이상이면 시간표가 등록되지 않게 구현해보려고 했습니다. 시작한지 얼마 안된 초보라서 답답해도 도움 부탁드려요ㅠ
public int Check(String weekA, String weekB ,String starttimeA, String endtimeA, String starttimeB, String endtimeB ) { sql = "SELECT COUNT(*) cnt FROM tabledb where '"+weekA+"' = '"+weekB+"' AND '"+starttimeA+"' < '"+endtimeB+"' AND '"+endtimeA+"' > '"+starttimeB+"'"; cursor = db.rawQuery(sql, null); count = cursor.getCount(); return count; }
이런식으로 구현하여 count값이 0이하일때와 1이상일때 두 상황으로 나누어서 판별하는쪽으로 구현하려고 했는데 중복이 없는데도 카운터값이 0이 아닌지 이미 등록된 강의라고 나옵니다 ㅠ