掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VC++6.0で、誕生日を入力して歳を算出するには? (ID:65434)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
返事が遅くなってしまってすみません・・。 時間がかかってしまいましたが、どうにか動くものを作ることができました。 /*---------------------------------------------------------------------------- * 処理概要:文字列で入力された生年月日を、年、月、日に分解し、数値に変換する。 * 関数名 :OnChangeUmare() *--------------------------------------------------------------------------*/ void CTouroku2Dlg::OnKillfocusUmare() { CString Birthday; CString wkBirthday; int year, month, day; // エディットボックスから生年月日を取得 //Birthday = OnChangeUmare(); UpdateData(TRUE); wkBirthday = m_Umare; // 生年月日が10文字入力されていない場合、エラーを表示させる。 if (GetDlgItem(IDC_UMARE)->GetWindowTextLength() != 10){ AfxMessageBox("正しく入力してください"); } // 年を取得 wkBirthday = m_Umare.Mid(0, 4); year = atoi(wkBirthday); AfxMessageBox("1"); // 月を取得 wkBirthday = m_Umare.Mid(5, 2); month = atoi(wkBirthday); AfxMessageBox("2"); // 日を取得 wkBirthday = m_Umare.Mid(8, 2); day = atoi(wkBirthday); AfxMessageBox("3"); // 年齢にKeisanで求めた結果を代入する。 m_Nenrei = Keisan(year, month, day); UpdateData(FALSE); } /*------------------------------------------------------------------- * 処理概要:現在の年月日と入力された年月日を比べて、歳を求める。 * 関数名 :Keisan() *-----------------------------------------------------------------*/ int CTouroku2Dlg::Keisan(int year, int month, int day){ int age; // 現在の年月日を取得 CTime DataTime = CTime::GetCurrentTime(); CString g_year, g_month, g_day; int now_year = DataTime.GetYear(); int now_month = DataTime.GetMonth(); int now_day = DataTime.GetDay(); // 現在年から入力された年を引き年齢を求める age = now_year - year; // 現在月と入力された月を比較する年 if (now_month < month){ age = age - 1; } if (now_month == month){ // 現在日と入力された日を比較する if (now_day < day){ age = age - 1; } } // 結果を返す return age; } ヒントをくれた方、皆様には感謝しております。 ありがとうございました。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.