다음 예정일은 어디서 나오는가

날짜 하나와 주기 하나로 왜 다음 날짜를 구할 수 있는지, 그 주기 값이 어느 원문에서 왔는지, 이 계산기가 실제로 하는 일이 무엇인지 순서대로 적었어요.

주기란 무엇을 세는 말인가

MedlinePlus(미국 국립의학도서관)는 주기를 이렇게 세요. "It is counted from the first day of one period to the first day of the next." 한 번 시작한 첫날부터 다음에 시작한 첫날까지라는 뜻이에요.

그래서 이 계산기가 받는 날짜는 시작한 첫날이고, 끝난 날이 아니에요. 두 날을 헷갈리면 결과가 통째로 며칠 밀려요.

주기 길이는 그 두 날 사이의 날수예요. 예를 들어 3월 1일에 시작하고 다음이 3월 29일에 시작했다면 그 주기는 28일이에요.

표준 계산 방식

미국 보건복지부 여성건강국은 "The typical menstrual cycle is 28 days long, but each woman is different." 라고 적어요. 그래서 이 계산기의 기본값이 28일이에요. 사람마다 다르다는 뒷문장까지가 한 벌이라, 이 값은 고쳐 넣으라고 둔 것이에요.

같은 원문은 "Your periods are still regular if they usually come every 24 to 38 days." 라고 적어요. 그래서 이 계산기는 넣으신 주기가 24일에서 38일 밖이면 그 사실 한 줄만 적어요. 판정이 아니라 원문에 적힌 범위를 옮긴 것이에요.

받는 범위는 그보다 조금 넓은 21일에서 38일이에요. 원문이 규칙적이라 부르는 구간보다 짧은 주기를 가진 사람도 날짜는 세고 싶기 때문이에요. 그 밖의 값은 오타로 보고 받지 않아요.

다음 예정일은 그 두 값을 더한 것뿐이에요. 마지막으로 시작한 날에 주기를 한 번, 두 번, 세 번 더한 날짜가 차례로 나와요. 화면은 그 더한 셈을 날짜 옆에 그대로 적어요.

이 계산기의 세부 규칙

여기는 코드가 실제로 하는 일을 순서대로 적은 것이에요. 넣는 것은 둘인데, 마지막으로 시작한 날과 평균 주기예요.

계산을 누르면 먼저 그 날짜에서 오늘까지 지난 날수를 세요. 그 날수를 주기로 나눠 올림한 수가 첫 번째로 보여 줄 주기 번호예요. 예를 들어 30일 전에 시작했고 주기가 28일이면 첫 번째 주기(28일째)는 이미 지났으므로 두 번째 주기부터 보여 줘요. 그렇게 4개를 내요.

이미 지나간 주기가 있으면 그 마지막 날짜에서 며칠이 지났는지를 숫자로만 적고, 그 숫자에 어떤 뜻도 붙이지 않아요. 주기는 달마다 달라지므로 그 숫자 하나로는 아무것도 알 수 없기 때문이에요.

날짜를 더하는 일은 달의 끝과 윤달을 스스로 넘겨요. 1월 31일에 28일을 더하면 2월 28일이 되고, 윤년이면 2월 29일 다음인 3월 1일 계산도 어긋나지 않아요. 골든이 그 넘김을 매번 확인해요.

넣은 날짜가 오늘보다 뒤면 계산을 거부하고 이유를 적어요. 400일보다 오래전이어도 날짜를 다시 확인해 달라고 적어요. 주기가 21일에서 38일 밖이어도 마찬가지예요.

결과 링크 복사는 넣은 날짜와 주기를 주소의 매개변수로 붙일 뿐이에요. 서버에 저장하지 않고, 링크를 연 사람의 화면에서 같은 계산을 다시 해요.

넣을 때 요령

시작한 날이 정확히 기억나지 않으면 대략의 날짜를 넣어도 계산은 되고, 하루 어긋나면 결과도 하루 어긋날 뿐이에요.

평균 주기를 모르겠으면 28일을 그대로 두세요. 원문이 말하는 대표값이에요. 다만 자기 주기를 아는 사람이 그 값을 넣으면 결과가 훨씬 잘 맞아요.

달마다 며칠씩 차이가 나는 편이라면 최근 몇 번의 간격을 평균 내어 넣는 쪽이 나아요. 아래 기록을 켜 두면 그 평균을 스스로 셈해 넣어 드려요.

기록을 켰을 때

기록은 기본이 꺼짐이고, 켜는 자리에서 따로 한 번 더 여쭙어요. 개인정보 보호법 제23조가 건강과 성생활에 관한 정보를 민감정보로 적어 두었기 때문이에요. 우리는 그 값을 받지 않지만, 이 브라우저에 남기는 일도 직접 정할 일이에요.

켜면 계산할 때 넣은 시작일이 이 브라우저의 저장소에만 쌓이고, 우리 서버로는 가지 않아요. 쌓인 시작일이 둘 이상이면 이웃한 두 날짜의 간격을 평균 내어 평균 주기 칸에 넣어 드려요. 상식을 크게 벗어난 간격은 오타로 보고 평균에서 빼요.

끄면 그 자리에서 남아 있던 기록도 함께 지워요. 끄지 않고 지우기만 할 수도 있어요. 공용 컴퓨터를 쓴다면 켜지 않는 쪽이 나은데, 브라우저에 남은 것은 다음 사람이 열 수 있기 때문이에요.

자주 막히는 부분

끝난 날을 넣으면 결과가 통째로 며칠 밀리는데, 넣어야 하는 것은 시작한 첫날이에요.

예정일이 지났는데 아직이라면 이 계산기는 며칠이 지났는지만 알려 주고, 그 숫자로 어떤 판단도 하지 않아요. 궁금하거나 걱정되면 이 화면이 아니라 병원에 물어보세요.

결과가 지난달과 다르게 나온다면 넣은 주기 값이 달라졌거나 시작일을 다르게 넣었을 가능성이 높아요. 화면의 계산식 줄이 어떤 날짜에 며칠을 더했는지 그대로 보여 주므로 그 줄을 먼저 보세요.

다른 기기에서 열면 기록이 없는데, 기록은 이 브라우저에만 남고 어디로도 보내지 않기 때문이에요. 그것이 이 앱이 하는 약속이에요.

출처