No.4ベストアンサー
- 回答日時:
どういう暦法についての閏年判定かによります。
ユリウス太陽暦だと、原則、西暦年が4の倍数なら閏年です。ただし、ローマでシーザーによる導入直後から、四年に一度の閏年を誤って3年に一度しばらく実施したため、アウグストゥス帝だったと思いますが、後年、閏年を間引いて実施していない時期があります。正しくユリウス太陽暦が運用される以前については、閏年の西暦年データと照合して判定するのが適切です。
グレゴリオ太陽暦はユリウス太陽暦から閏年の回数を四百年間で三回減らしています。閏年にならない西暦年の判定方法を考えるほうがわかりやすいかもしれません。4の倍数以外は平年。4の倍数でも100の倍数なら、400の倍数以外は平年。
なお、グレゴリオ太陽暦への改暦は国や地域によって年が違うので、凝れば主要国も入力させて、グレゴリオ太陽暦以前の西暦年ならユリウス太陽暦で閏年判定させればいいでしょう。
一応、西暦年を四桁のアラビア数字で入力する仕様ならば、入力値が適切かどうかの判定が最初に必要です。
なおExcelは、1900年を閏年とみなすユーザー設定をしている場合、1900年の3月1日の一日前の日付に2月29日を返したり、1900年の年間日数に366日を返します。また、ローマ教皇によるグレゴリオ太陽暦改暦となった1572年以前もグレゴリオ太陽暦を適用してしまうので注意。
和暦の閏年判定は、和暦元号が正しいかチェックし、和暦年を閏年判定用データと照合するしかありません。貞享暦以前の暦は残っておらず公家の日記などと当時の暦法から割り出している参考データの域を出ていないので注意。閏年データは雄山閣の『日本暦日原典』など参照してください。
No.2
- 回答日時:
どぞ。
http://uruudoshi.web.fc2.com/
ここまで書いてあればフローチャートは書けなきゃ嘘ですし、書けないと勉強にも何にもなりませんよ。
実際、結果が欲しいだけなら、これだけあればいきなりプログラムも書けますからね。
例えばエクセルで以下の式をB1に入れれば、A1セルに西暦年を入力した時、閏年なら"YES"、そうでないなら"NO"が出てきます。
=IF(MOD(A1,4)=0,IF(MOD(A1,100)=0,IF(MOD(A1,400)=0,"YES","NO"),"YES"),"NO")
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) 【フローチャートの書き方について】 勤務年数と勤務場所を入力し,給与額を表示するフローチャートを作成 2 2022/10/04 12:11
- 不動産業・賃貸業 賃貸の解約について質問です。 不動産会社の言うことが分からず質問させていただきました。 新築のマンシ 1 2022/08/06 19:35
- 日本語 「無視!」って、無視していることになりますか? 19 2022/07/19 22:37
- その他(住宅・住まい) 賃貸の解約について質問です。 不動産会社の言うことが分からず質問させていただきました。 新築のマンシ 6 2022/08/06 19:42
- Excel(エクセル) Excelで行削除をすると… 1 2023/07/26 11:57
- 退職・失業・リストラ 作業療法士です。業務委託の契約解除について初歩的な事で申し訳ありませんがアドバイス頂きたいです。 週 2 2022/10/05 07:17
- Excel(エクセル) エクセルで日別シフト表を作る(セルに色を付ける) 3 2022/10/15 14:17
- アルバイト・パート 初めてバイトを始めました。まだ初めてから1ヶ月程ですが、少し違和感がします。 その職場はタイムカード 1 2022/05/07 01:57
- 財務・会計・経理 もう一度減価償却について質問です。 (pc11月31日に、利用開始して1月末決算) 決算終了後の減価 2 2023/04/12 15:08
- docomo(ドコモ) 通話録音が(最初から)自動的に始まるアプリは? 7 2023/01/16 15:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
16進数を10進数に変換する方法...
-
36進数
-
SQL Serverにおける小数部の0...
-
閏年のフローチャートについて
-
和暦→西暦(有効範囲を考慮)
-
特定のセルが空白だったら、そ...
-
ExcelVBAを使って、値...
-
【Excel VBA】指定行以降をクリ...
-
VBAでActiveDirectoryのユーザ...
-
【Excel】指定したセルの名前で...
-
テキストボックスのvalueとtext...
-
Accessのクエリで、replace関数...
-
表にフィルターをかけ、絞った...
-
i=cells(Rows.Count, 1)とi=cel...
-
ExcelのINDEXとMATCH関数でスピ...
-
ListView 項目の選択/選択解除...
-
特定の文字を条件に行挿入とそ...
-
【Excel VBA】先頭の「0」飛び...
-
Excelのセルの色指定をVBAから...
-
VB.NETで DataRow()を利用して...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL Serverにおける小数部の0...
-
16進数を10進数に変換する方法...
-
日付と曜日から、1週間前(7...
-
和暦から西暦変換(C#)
-
エクセルのカレンダー
-
C言語のうるう年に関するプログ...
-
Request.QueryStringの型について
-
西暦と年号の変換プログラム
-
うるう年を求めるプログラム
-
10進を2進(32ビット)に変換
-
数値を通貨型に変換して(1000...
-
36進数
-
西暦を入力して、うるう年かど...
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
VBAでActiveDirectoryのユーザ...
-
VB.NETで DataRow()を利用して...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelのセルの色指定をVBAから...
-
【Excel VBA】指定行以降をクリ...
おすすめ情報