1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JavaScriptで西暦と平年orうるう年を出力する

Last updated at Posted at 2020-03-25

初投稿です。最近、JavaScriptなどの学習を始めました。優しくしてください。
先日JavaScriptを使ったうるう年のプログラムを学習したところですが、最近覚えたfor文と組み合わせて、
西暦と一緒にうるう年かどうかをhtml上で西暦○○年:平年ですorうるう年ですとブラウザに出力するプログラムを書いてみようと考えました。
0年から2020年までずらーっと並べます。

コード内の下記の配列は連番の数字の配列を作成(es2015 ver)
を参考にさせていただきました。
0から2020までの数値を変数に入れるつもりでした。

const arr = [...Array((2020) + 1).keys()]

#コード

  • htmlの<script>タグ内に記述し、
    document.write();で出力しています。
  • uruu(year)がうるう年を判定する関数です。引数に応じてうるう年か平年かを判定してresultに渡します。
<!DOCTYPE html>
<html lang="ja" dir="ltr">
<head>
    <meta charset="UTF-8">
    <title>うるう年出力</title>
</head>
<body>
    <script>
        function uruu(year) {
            if (year % 4 == 0) {
                if (year % 100 != 0 || year % 400 == 0) {
                    result = 'うるう年です';
                }
            } else {
                result = '平年です';
            }
        }

        const arr = [...Array((2020) + 1).keys()]
        let result = "";

        for (let i = 0; i < arr.length; i++) {
            uruu(arr[i])
            document.write('西暦' + arr[i] + '年:' + result);
            document.write('<br>');
        }
    </script>
</body>
</html>

#結果
西暦0年から2020年までをブラウザに出力出来ました。(0年は本来無いらしいですが…)
長いので最初と最後を。
FireShot Capture 006 - うるう年出力 - .png
FireShot Capture 005 - うるう年出力 - .png
これだけです。

#所感

  • 全体的にもっと短くきれいに書けるはず。あまりにも無知。

  • 下記の箇所はfor文をどうにかして、配列の箇所を...Array(2020)と簡潔に出来そうな気がするのですが、西暦2020の所が西暦undefinedとなってしまうので現状の記述にしています。

const arr = [...Array((2020) + 1).keys()]
for (let i = 0; i < arr.length; i++) {

#最後に
今後はもっと難しいのを書けるようになりたい。

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?