void getappointment(FILE *fp, int cid, int pid, char *user, int d, int m, int y, int *csock){ printf("\n in get appointments"); fseek(fp, 0, SEEK_END); struct appointment a; a.flag = 3; a.category_id = cid; a.person_id = pid; strcpy(a.username, user); a.d = d; a.m = m; a.y = y; if (isvalid_date(fp, d, m, y)){ fwrite(&a, sizeof(a), 1, fp); replyto_client("appointment creation successfull...", csock); } else{ replyto_client("invalid/alreday booked date provided try again with another date :)", csock); } }
int main(void) { char user_id[15] = { 0 }, gender = 0; printf("주민등록번호를 -를 포함하여 입력하시오. "); gets_s(user_id); if (strlen(user_id) != 14) { printf("주민등록번호의 길이가 너무 짧습니다.\n"); return 0; }//길이 확인 for (int i = 0; user_id[i]; i++) user_id[i] -= '0';//교수님의 추천 방법대로 숫자 배열로 바꿉니다. int year = user_id[0] * 10 + user_id[1], month = user_id[2] * 10 + user_id[3], day = user_id[4] * 10 + user_id[5]; gender = user_id[7]; if (gender == 1 || gender == 2) year += 1900; else year += 2000; //1900년대인지, 2000년대인지 확인 if (!((gender <= 4) && (gender > 0))) { printf("주민등록번호의 성별이 유효하지 않습니다.\n"); return 0; }//유효성 확인 if (!isvalid_date(year, month, day)) { printf("주민등록번호의 생년월일이 유효하지 않습니다.\n"); return 0; }//날짜 확인 if (!isvalid_id(user_id)) { printf("유효하지 않은 주민등록번호입니다.\n"); return 0; }//유효성 확인 //출력 if (gender == 1 || gender == 3) printf("남성, "); else if (gender == 2 || gender == 4) printf("여성, "); printf("%d년 %d월 %d일생 입니다.\n", year, month, day); return 0; }