入学年・卒業年計算

履歴書に必要な学校の入学年・卒業年計算を生年月日から計算できます。

生年月日を入力してください

在籍年数と浪人年数を入力してください

高校受験の
浪人年数
高校の
在籍年数
大学/専門学校
受験の浪人年数
大学/専門学校の
在籍年数
西暦 和暦 学歴
4 小学校 入学
3 小学校 卒業
4 中学校 入学
3 中学校 卒業
4 高等学校/高等専門学校 入学
3 高等学校/高等専門学校 卒業
4 大学/専門学校 入学
3 大学/専門学校 卒業

入学年・卒業年計算で利用しているAPIについて

HuTime Web API - Calendar Calculation © Tatsuki Sekino
Creative Commons Attribution 4.0

HuTime

入学年・卒業年計算の注意事項

  • 入学年・卒業年計算の結果などに関して当サイトは一切責任を負いません。
学校授業の「IT化」で、こんなお悩みありませんか?【e-おうち】
出張/持込/宅配でパソコン修理・設定 24時間365日対応

入学年・卒業年計算ツールについて

入学年・卒業年計算ツールはJavaScriptで制作しています。掲載しているソースコードは解説のためにバリデーションや通信失敗時の処理などを省略しているので、実際のソースコードとは異なります。

使用しているJavaScriptのライブラリ

利用しているAPI

HTML

在籍年数と浪人年数を入力するinputタグのpattern属性に数字の正規表現である「\d*」を指定して、iPhoneで数字入力のキーパッドが表示されるようにしています。Androidなどでも表示されるようにするには別の方法を考える必要があります。

HTML
<h3>生年月日を入力してください</h3>
<table>
    <thead>
        <tr>
            <th>年</th>
            <th>月</th>
            <th>日</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><input type="text" id="birth-year" pattern="\d*"></td>
            <td><input type="text" id="birth-month" pattern="\d*"></td>
            <td><input type="text" id="birth-day" pattern="\d*"></td>
        </tr>
    </tbody>
</table>

<h3>在籍年数と浪人年数を入力してください</h3>
<table>
    <thead>
        <tr>
            <th>高校受験の浪人年数</th>
            <th>高校の在籍年数</th>
            <th>大学/専門学校受験の浪人年数</th>
            <th>大学/専門学校の在籍年数</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><input type="text" id="highschool-prepare-years" pattern="\d*" value="0"></td>
            <td><input type="text" id="highschool-years" pattern="\d*" value="3"></td>
            <td><input type="text" id="university-prepare-years" pattern="\d*" value="0"></td>
            <td><input type="text" id="university-years" pattern="\d*" value="4"></td>
        </tr>
    </tbody>
</table>

<table id="result">
    <thead>
        <tr>
            <th>西暦</th>
            <th>和暦</th>
            <th>月</th>
            <th>学歴</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td id="elementaryschool-entrance-ce-year"></td>
            <td id="elementaryschool-entrance-jp-year"></td>
            <td>4</td>
            <td>小学校 入学</td>
        </tr>
        <tr>
            <td id="elementaryschool-graduation-ce-year"></td>
            <td id="elementaryschool-graduation-jp-year"></td>
            <td>3</td>
            <td>小学校 卒業</td>
        </tr>
        <tr>
            <td id="juniorhighschool-entrance-ce-year"></td>
            <td id="juniorhighschool-entrance-jp-year"></td>
            <td>4</td>
            <td>中学校 入学</td>
        </tr>
        <tr>
            <td id="juniorhighschool-graduation-ce-year"></td>
            <td id="juniorhighschool-graduation-jp-year"></td>
            <td>3</td>
            <td>中学校 卒業</td>
        </tr>
        <tr>
            <td id="highschool-entrance-ce-year"></td>
            <td id="highschool-entrance-jp-year"></td>
            <td>4</td>
            <td>高等学校/高等専門学校 入学</td>
        </tr>
        <tr>
            <td id="highschool-graduation-ce-year"></td>
            <td id="highschool-graduation-jp-year"></td>
            <td>3</td>
            <td>高等学校/高等専門学校 卒業</td>
        </tr>
        <tr>
            <td id="university-entrance-ce-year"></td>
            <td id="university-entrance-jp-year"></td>
            <td>4</td>
            <td>大学/専門学校 入学</td>
        </tr>
        <tr>
            <td id="university-graduation-ce-year"></td>
            <td id="university-graduation-jp-year"></td>
            <td>3</td>
            <td>大学/専門学校 卒業</td>
        </tr>
    </tbody>
</table>

<button type="submit" id="submit">入学・卒業年を計算する</button>

入学・卒業年の計算を実行

「入学・卒業年を計算する」が押された時に計算を実行します。
jQueryオブジェクトの変数名には$を付けています。

JavaScript
$('#submit').on('click', () => {
    graduationDateCalc();
});

function graduationDateCalc() {
    let birthYear  = parseInt($('#birth-year').val());
    let birthMonth = parseInt($('#birth-month').val());
    let birthDay   = parseInt($('#birth-day').val());
    let $submit = $('#submit');
    let $result = $('#result');
    
    let elementaryschoolEntranceCeYear = birthYear + 7;
    
    if (birthMonth <= 3 || (birthMonth === 4 && birthDay === 1)) {
        elementaryschoolEntranceCeYear--;
    }
    
    let ajaxData = {
        method: 'conv',
        out   : 'json',
        ical  : '101.1',
        ocal  : '1001.1',
        itype : 'date'
    };
    
    let years = {
        elementaryschool : 6,
        juniorhighschool : 3,
        highschool       : parseInt($('#highschool-years').val()),
        highschoolPrepare: parseInt($('#highschool-prepare-years').val()),
        university       : parseInt($('#university-years').val()),
        universityPrepare: parseInt($('#university-prepare-years').val())
    };
    
    let ceYearList = {
        elementaryschoolEntrance: {
            id  : '#elementaryschool-entrance-ce-year',
            year: elementaryschoolEntranceCeYear
        },
        elementaryschoolGraduation: {
            id  : '#elementaryschool-graduation-ce-year',
            year: elementaryschoolEntranceCeYear
                  + years.elementaryschool
        },
        juniorhighschoolEntrance: {
            id  : '#juniorhighschool-entrance-ce-year',
            year: elementaryschoolEntranceCeYear
                  + years.elementaryschool
        },
        juniorhighschoolGraduation: {
            id  : '#juniorhighschool-graduation-ce-year',
            year: elementaryschoolEntranceCeYear
                  + years.elementaryschool
                  + years.juniorhighschool
        },
        highschoolEntrance: {
            id  : '#highschool-entrance-ce-year',
            year: elementaryschoolEntranceCeYear
                  + years.elementaryschool
                  + years.juniorhighschool
                  + years.highschoolPrepare
        },
        highschoolGraduation: {
            id  : '#highschool-graduation-ce-year',
            year: elementaryschoolEntranceCeYear
                  + years.elementaryschool
                  + years.juniorhighschool
                  + years.highschoolPrepare
                  + years.highschool
        },
        universityEntrance: {
            id  : '#university-entrance-ce-year',
            year: elementaryschoolEntranceCeYear
                  + years.elementaryschool
                  + years.juniorhighschool
                  + years.highschoolPrepare
                  + years.highschool
                  + years.universityPrepare
        },
        universityGraduation: {
            id  : '#university-graduation-ce-year',
            year: elementaryschoolEntranceCeYear
                  + years.elementaryschool
                  + years.juniorhighschool
                  + years.highschoolPrepare
                  + years.highschool
                  + years.universityPrepare
                  + years.university
        }
    };
        
    let jpYearList = {
        elementaryschoolEntrance: {
            id  : '#elementaryschool-entrance-jp-year',
            year: getHutimeData(
                  ajaxData,
                  ceYearList.elementaryschoolEntrance.year,
                  4,
                  1
            )
        },
        elementaryschoolGraduation: {
            id  : '#elementaryschool-graduation-jp-year',
            year: getHutimeData(
                  ajaxData,
                  ceYearList.elementaryschoolGraduation.year,
                  3,
                  31
            )
        },
        juniorhighschoolEntrance: {
            id  : '#juniorhighschool-entrance-jp-year',
            year: getHutimeData(
                  ajaxData,
                  ceYearList.juniorhighschoolEntrance.year,
                  4,
                  1
            )
        },
        juniorhighschoolGraduation: {
            id  : '#juniorhighschool-graduation-jp-year',
            year: getHutimeData(
                  ajaxData,
                  ceYearList.juniorhighschoolGraduation.year,
                  3,
                  31
            )
        },
        highschoolEntrance: {
            id  : '#highschool-entrance-jp-year',
            year: getHutimeData(
                  ajaxData,
                  ceYearList.highschoolEntrance.year,
                  4,
                  1
            )
        },
        highschoolGraduation: {
            id  : '#highschool-graduation-jp-year',
            year: getHutimeData(
                  ajaxData,
                  ceYearList.highschoolGraduation.year,
                  3,
                  31
            )
        },
        universityEntrance: {
            id  : '#university-entrance-jp-year',
            year: getHutimeData(
                  ajaxData,
                  ceYearList.universityEntrance.year,
                  4,
                  1
            )
        },
        universityGraduation: {
            id  : '#university-graduation-jp-year',
            year: getHutimeData(
                  ajaxData,
                  ceYearList.universityGraduation.year,
                  3,
                  31
            )
        }
    };
    
    $.each(ceYearList, (key, val) => {
        $(val.id).text(val.year + '年');
    });
    
    $.each(jpYearList, (key, val) => {
        eval(val.year).done(data => {
            $.each(data, (k, v) => {
                if (v !== null) {
                    $(val.id).text(
                        v.text.replace(/\d+月\d+日/, '').replace(/^(.{2})1年/, '$1元年')
                    );
                }
            });
        });
    });
}

生年月日を取得

inputタグに入力された生年月日を変数に格納します。

JavaScript
let birthYear  = parseInt($('#birth-year').val());
let birthMonth = parseInt($('#birth-month').val());
let birthDay   = parseInt($('#birth-day').val());

小学校の入学年を設定

生年月日に7を足して小学校の入学年を設定します。その際、生まれた月が3月以下、または生まれた月日が4月1日の場合は6年に設定します。

JavaScript
let elementaryschoolEntranceCeYear = birthYear + 7;

if (birthMonth <= 3 || (birthMonth === 4 && birthDay === 1)) {
    elementaryschoolEntranceCeYear--;
}

HuTime Web APIからデータを取得するための設定

データを取得するための設定をします。method(処理の種類)には変換の「conv」、output(出力形式)にはJSON形式の「json」、ical(変換元の暦法のID)にはユリウス/グレゴリオ暦(1582年改暦)の「101.1」、ocal(変換先の暦法のID)には和暦(南朝)の「1001.1」、itype(変換元の暦日等の型)には暦日の「date」を指定します。

JavaScript
let ajaxData = {
    method: 'conv',
    out   : 'json',
    ical  : '101.1',
    ocal  : '1001.1',
    itype : 'date'
};

各学校の年数を設定

小学校~大学の年数、高校の在籍年数、大学の在籍年数を設定します。高校と大学は人によって年数が変わるため、入力された年数を使用します。

JavaScript
let years = {
    elementaryschool : 6,
    juniorhighschool : 3,
    highschool       : parseInt($('#highschool-years').val()),
    highschoolPrepare: parseInt($('#highschool-prepare-years').val()),
    university       : parseInt($('#university-years').val()),
    universityPrepare: parseInt($('#university-prepare-years').val())
};

年(西暦)の一覧を作成

各学校の入学年(西暦)と卒業年(西暦)の一覧を作成します。小学校の入学年にそれぞれの学校の年数を足していきます。

JavaScript
let ceYearList = {
    elementaryschoolEntrance: {
        id  : '#elementaryschool-entrance-ce-year',
        year: elementaryschoolEntranceCeYear
    },
    elementaryschoolGraduation: {
        id  : '#elementaryschool-graduation-ce-year',
        year: elementaryschoolEntranceCeYear
              + years.elementaryschool
    },
    juniorhighschoolEntrance: {
        id  : '#juniorhighschool-entrance-ce-year',
        year: elementaryschoolEntranceCeYear
              + years.elementaryschool
    },
    juniorhighschoolGraduation: {
        id  : '#juniorhighschool-graduation-ce-year',
        year: elementaryschoolEntranceCeYear
              + years.elementaryschool
              + years.juniorhighschool
    },
    highschoolEntrance: {
        id  : '#highschool-entrance-ce-year',
        year: elementaryschoolEntranceCeYear
              + years.elementaryschool
              + years.juniorhighschool
              + years.highschoolPrepare
    },
    highschoolGraduation: {
        id  : '#highschool-graduation-ce-year',
        year: elementaryschoolEntranceCeYear
              + years.elementaryschool
              + years.juniorhighschool
              + years.highschoolPrepare
              + years.highschool
    },
    universityEntrance: {
        id  : '#university-entrance-ce-year',
        year: elementaryschoolEntranceCeYear
              + years.elementaryschool
              + years.juniorhighschool
              + years.highschoolPrepare
              + years.highschool
              + years.universityPrepare
    },
    universityGraduation: {
        id  : '#university-graduation-ce-year',
        year: elementaryschoolEntranceCeYear
              + years.elementaryschool
              + years.juniorhighschool
              + years.highschoolPrepare
              + years.highschool
              + years.universityPrepare
              + years.university
    }
};

入学年(和暦)と卒業年(和暦)の一覧を作成

各学校の入学年(和暦)と卒業年(和暦)の一覧を作成します。
それぞれの年数は上記で出しているので、ここではHuTime Web APIを利用して和暦への変換だけ行います。

JavaScript
let jpYearList = {
    elementaryschoolEntrance: {
        id  : '#elementaryschool-entrance-jp-year',
        year: getHutimeData(
              ajaxData,
              ceYearList.elementaryschoolEntrance.year,
              4,
              1
        )
    },
    elementaryschoolGraduation: {
        id  : '#elementaryschool-graduation-jp-year',
        year: getHutimeData(
              ajaxData,
              ceYearList.elementaryschoolGraduation.year,
              3,
              31
        )
    },
    juniorhighschoolEntrance: {
        id  : '#juniorhighschool-entrance-jp-year',
        year: getHutimeData(
              ajaxData,
              ceYearList.juniorhighschoolEntrance.year,
              4,
              1
        )
    },
    juniorhighschoolGraduation: {
        id  : '#juniorhighschool-graduation-jp-year',
        year: getHutimeData(
              ajaxData,
              ceYearList.juniorhighschoolGraduation.year,
              3,
              31
        )
    },
    highschoolEntrance: {
        id  : '#highschool-entrance-jp-year',
        year: getHutimeData(
              ajaxData,
              ceYearList.highschoolEntrance.year,
              4,
              1
        )
    },
    highschoolGraduation: {
        id  : '#highschool-graduation-jp-year',
        year: getHutimeData(
              ajaxData,
              ceYearList.highschoolGraduation.year,
              3,
              31
        )
    },
    universityEntrance: {
        id  : '#university-entrance-jp-year',
        year: getHutimeData(
              ajaxData,
              ceYearList.universityEntrance.year,
              4,
              1
        )
    },
    universityGraduation: {
        id  : '#university-graduation-jp-year',
        year: getHutimeData(
              ajaxData,
              ceYearList.universityGraduation.year,
              3,
              31
        )
    }
};

function getHutimeData(ajaxData, year, month, day) {
    ajaxData.ival = year + '-' + month + '-' + day;
    
    return $.ajax({
        type   : 'GET',
        url    : 'http://ap.hutime.org/cal/',
        data   : ajaxData,
        timeout: 5000
    });
}

各学校の入学年(西暦)と卒業年(西暦)を表示

each関数で一覧を繰り返し処理し、指定されている所定の個所にtextメソッドで表示します。

JavaScript
$.each(ceYearList, (key, val) => {
    $(val.id).text(val.year + '年');
});

各学校の入学年(和暦)と卒業年(和暦)を表示

each関数で一覧を繰り返し処理し、指定されている所定の個所にtextメソッドで表示します。
表示させる際に、replaceメソッドで月日を削除し、1年は元年に置換します。

JavaScript
$.each(jpYearList, (key, val) => {
    eval(val.year).done(data => {
        $.each(data, (k, v) => {
            if (v !== null) {
                $(val.id).text(
                    v.text.replace(/\d+月\d+日/, '').replace(/^(.{2})1年/, '$1元年')
                );
            }
        });
    });
});

おわりに

入卒年の計算は留年や浪人を考慮しても、西暦で表示するだけの場合の計算はあまり難しくありません。和暦で表示する、または併記する場合は西暦に対応する和暦を計算しないといけないので計算が複雑になります。当ツールでは西暦を和暦に変換するためにHuTime Web APIを利用していますが、他にも様々な方法があるので、ツールを作成する際は「javascript 卒業年 計算」などで検索してみてください。

学校授業の「IT化」で、こんなお悩みありませんか?【e-おうち】
出張/持込/宅配でパソコン修理・設定 24時間365日対応
消費税計算

税率を設定して税込/税抜金額の消費税計算ができます。

文字数カウント

文字数をカウントできます。

和暦西暦変換

和暦と西暦を相互変換できます。

年齢計算

和暦または西暦から年齢を計算できます。

入学年・卒業年計算

履歴書に必要な学校の入学年・卒業年を生年月日から計算できます。

単位変換(換算)

キロ、マイル、グラム、華氏などの様々な単位を相互変換(換算)できます。

カラーコード変換

カラーコード(16進数)とRGB値(10進数)を相互変換できます。

Webタイマー(カウントダウン)

Webタイマー(カウントダウン)です。ストップウォッチ機能もあります。

生活に便利な電話番号一覧

警察や消防などの緊急連絡先や電話番号案内などの電話番号を確認できます。

プロバイダーのカスタマーサポートの電話番号一覧

主なプロバイダーのカスタマーサポートの電話番号を確認できます。

タスク管理(ToDo)

自分のWebブラウザーだけでタスク管理(ToDo)ができます。

エクセル関数

エクセル関数を検索できます。

麻雀の点数計算

麻雀の和了時の点数(符数/翻数/役)を計算することができます。

便利なショートカット一覧

Windows 10やExcelなどで使用できる便利なショートカットを確認できます。

電気料金計算

消費電力、使用時間、使用日数、1kWh単価から電気料金を計算できます。

パスワード生成(作成)

大文字・小文字・数字・記号を含むランダムなパスワードを生成できます。

自分のグローバルIPアドレスを確認

自分がインターネットに接続する時のグローバルIPアドレスを確認できます。

出張/持込/宅配でパソコン修理・設定 24時間365日対応
きょうみくん
このサイトの管理者
名前 きょうみくん
身長 181.1cm
誕生日 1月21日
所属 日本PCサービス株式会社
コメント

パソコン、インターネット、サーモン、ミルクティーが好きです。
猫ではありません。

エクセル家計簿の作り方など、技術的なコラムを書いているTech Blogも運営しています。