• ベストアンサー

カレンダーの日数は変えられないのか

1年365日を、1月から順に次の日数にするとします。 30 30 30 31 31 31 31 31 30 30 30 30 4月から8月までを31日(閏年は9月まで31日)とすることで、 全体的にバランスが取れます。 今のままでは2月が他の月より少ないため、どうしてもアンバランスに なってしまうと思うのです。 どうして、このように変更しようという動きが出ないのでしょうか? 昔からの慣習だからという意見もあるかと思いますが、ハッピーマンデー法で その慣習も無くなりつつある現代では、十分に考慮の余地があるのではないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • B-rapid
  • ベストアンサー率33% (368/1098)
回答No.1

話としてはおもしろいかもしれませんが、実際に行うとなれば膨大な手間と費用が掛かります。 まず、この新しい暦を国際的に使うのかそれとも日本だけで使うのかという問題があります。前者であれば国際会議(天文学関係でしょうか?)の調整が必要になります。後者でしたら手続き自体は簡単でしょうけど、国際化が進んだ現在では実質二つの暦を併用することになります。イスラム圏などでは独自のイスラム暦との併用が行われていますし、日本でもいわゆる旧暦が農林水産関係を中心に使われていますけど そして実際に実施するとなれば単純にカレンダーを作り直せば済む話ではないわけです。コンピューターなどの内蔵カレンダーの変更も必要になります。これはもう2000年問題の比ではないでしょう。

関連するQ&A

  • カレンダー算

    2002年12月31日は火曜日。2003年5月5日は何曜日か。ただし、2003年はうるう年ではないので、2003年2月は28日までです この問題なんですが、1月は31日、2月は28日、3月は31日、4学校は30日、と一ヶ月どれくらい日数があるのか、どうすればわかるのですか? 自分の考え うるう年は2月の29があるという意味 よって、2月の28までしかない。 一年は365日 365÷12=30と余り5 だいたい、一ヶ月30日と考えられる それに余りの5を振り分ける 2月は28日までしかないから、余りに2を付け加える 7を振り分けたいのですが、どの月に振り分けられるのかがわかりません。

  • 経過日数を求める式が知りたいです

    経過日数を求める式が知りたいです。 例えば、2013年9月12日から今日まで経過日数とかです。 うるう年計算もあることが前提です。 グレゴリオ暦などでもいいので、経過日数がわかればいいのです。 ですので、うるう年計算された、指定日(YYYY/MM/DD)までの日数がわかれ 問題なしです。(経過日は上記の今日-指定日とすればいいので) 但し、EXCELや%などは使わずにです。シフト演算もなしです(>>や<<です)。 これが結構難しいので、今はお手上げ状態です。 よろしくお願いいたします。

  • エクセルの関数でその年のその月の合計日数を自動で求めることはできますか

    エクセルの関数でその年のその月の合計日数を自動で求めることはできますか? 例えばA1に  2010/10/4(日にちは適当な日数です)  等と入力されていたら B1に自動的に  31と表示される。 A1に2010/9/7 等と入力されていたら B1に自動的に  30と表示される。 また2月の28日やうるう年の29日も考慮してくれるようにしたいのですが・・・。

  • C言語でのカレンダープログラミングについて。

    今、C言語でカレンダーについてのプログラミングを行っています。 まず月を入力し表示させる。 その年がうるう年かどうか判定させる。 日曜~土曜を表示し、指定した月の日数を曜日に合わせて表示させる。 2008年1月1日は火曜日。 という事実を利用してよい。 という条件で、うるう年かの判定はあるものの年は2008年で固定です。 曜日、指定した月の日数を出すところまでいきましたが。 曜日に合わせて出す事ができません。 今は1月に合わせて、1日が火曜日のところに出るように配置してます。 が、次の週になったときにどのように改行指定すればいぃのかわりません。 また、来月以降の月初めの曜日指定もわからないです。 途中までのプログラムはこれです。 醜いかもしれませんが。 #include <stdio.h> int main(void) { int year=2008; int month,hantei=0,a,b,c; int uru[12]={31,29,31.30,31,30,31,31,30,31,30,31};/*うるう年の時の各月ごとの日数*/ int normal[12]={31,28,31,30,31,30,31,31,30,31,30,31};/*通常の年の各月ごとの日数*/ printf("表示させる月を入力してください。:"); scanf("%d",&month); if(year%4==0||year%100==0||year%400==0) { hantei=1;/*その年がうるう年かどうかを判定し、うるう年なら「hantei」に「1」が代入*/ } if(hantei==1)/*うるう年の場合。*/ { printf("%d年 %d月\n",year,month); printf("%d日\n",uru[month-1]); } else/*通常の年の場合。*/ { printf("%d年 %d月\n",year,normal[month-1]); printf("%d\n",normal[month-1]); } printf("日 月 火 水 木 金 土\n");/*曜日*/ if(hantei==1)/*うるう年の場合*/ { for(b=0;b<=7;b++) { printf(" ");/*火曜日のところまでスペースを空ける*/ } for(c=1;c<=uru[month-1];c++)/*日数表示*/ { printf("%2d ",c); } } return(0); } まだあまりC言語に詳しくないので、簡単に説明できる範囲で御願いします。 説明がわかりにくいかもしれませんが、すいません。

  • 西暦・月からカレンダーを表示

    問題文 西暦・月を入力してカレンダーを表示するプログラムを作成せよ。 プログラム全体のことを考える。プログラムの流れとしては、つぎのようになるであろう。  (1)変数の宣言: プログラムの中で使う変数や配列等をすべてここに集めておく。          (2)入力: キーボードから、西暦年の値を読み取る ← scanf( ) 関数  1月から12月まで、以下を繰り返す。  (3)カレンダーの年・月の表示: (例えば、2008年1月 と表示)  (4)各曜日名の表示: 「日 月 火 水 木 金 土」と表示  (5)月の日数の算出: 月の最後の日を計算しておく。(*1~12月以外では誤りとすること)  (6)曜日の算出: 月の初めの日(ついたち)の曜日をツェラー公式で計算しておく。  (7)空列の表示: ついたちの前の空白部分を表示する ← for文 を利用。  (8)各日の表示: 月の各日を順に表示していく ← for文を利用          (土曜の後に改行を入れる) #include <stdio.h> int leapYear(int year) { if (year%400==0||(year%4==0 && year%100!=0)) { return 1; } else { return 0; } } int main(void) { int d,year,m,i; int day[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; /*1~12月までの各月の日数*/ printf("西暦を入力してください:"); scanf("%d",&year); printf("月を入力してください:"); scanf("%d",&m); if(m!=1 & m!=2 & m!=3 & m!=4 & m!=5 & m!=6 & m!=7 & m!=8 & m!=9 & m!=10 & m!=11 & m!=12)/*1~12月以外で日数を出そうとした場合*/ { printf("入力が誤っています。やりなおしてください。\n"); } else{ if (leapYear(year)==1)/*閏年の場合*/ { printf("%d年は閏年です。\n",year); day[1] +=1; } else/*閏年でない場合*/ { printf("%d年は閏年ではありません。\n",year); } i = (year+year/4 -year/100 +year/400 + ( 13*m+8 )/5 + 1) % 7; /*西暦~年・1~12月の1日の曜日について考える*/ printf("日 月 火 水 木 金 土\n"); (7)・・・ (8)・・・ } return 0; } 手順に沿ってやっていく課題なのですが(7)、(8)の部分の表現の仕方が良く分かりません。(求めた月の日数をカレンダー形式に表示する方法・1日の前に空白を入れる等) 過去の質問も見たのですが、いまいち理解できず・・・orz どなたかご教授お願いできないでしょうか・・・。

  • 行程期間の月毎の日数を出す方法

    【状況】 4年分の作業工程表を作成しています。 期間を入力すると作業工程表に黒い色が設定されるように条件付き書式が設定されています。 【やりたいこと】 それぞれの月のセルに期間の日付を表示させたいです。 2024年1月は、1回目の作業の日数16日と2回目の日数の6日を足して21日と表示したい。 3回目の作業は2024年2月15日~3月28日、2月はうるう年なので14日と表示 3月のセルには29日と表示したい。 期間を求めるのは、datedif関数を使用するとよいのだと思いますが、1回目の作業工程と2回目の作業工程が同じ月なら合計しないといけないのとうるう年が絡んでくると何をどうしたらよいのかわからないです。 別シートに計算用のシートを作成しようと思いやってみたのですがうまくいきません。 VBAを使わずに計算式で作成したいと思っております。 ご存じの方がいらっしゃいましたらご教示お願い致します。

  • 日数を計算する方法

    以下のようにして変数の配列を使って、 月の日数を格納しています。 int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31}; これを使って、 元旦から入力された月日の日数を計算したいのですが どの様にすればいいですか? 例えば、 4月5日の場合は、 1月 31日 2月 28日 3月 31日 4月 5日 なので「95日」 ---------------- 途中までのプログラム #include<stdio.h> main(void) { int yy, mm, dd; int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31}; printf( "西暦を入力しなさい" ); scanf( "%d", &yy ); printf( "月を入力しなさい" ); scanf( "%d", &mm ); printf( "日を入力しなさい" ); scanf( "%d", &dd ); /* うるう年判定 */ if (((yy%4==0)&&(yy%100!=0))||(yy%400==0)) mon[1]=29; else mon[1]=28; ・ ・

  • 日付で属する年度を表示させるには

    ある期間を計算するのに、年度の日数が必要になります。 うるう年の場合は366日で割り戻さないといけないんで、うるう年が属する年度は年間の日数を366日、その他の年には365日としたいのですが。 その期間は開始平成23年6月1日~平成23年7月31日とした場合でも23年度の日数が366日なので、単価×(61/366日)で計算したいのですが。 何か良い方法はないでしょうか。 あるセルにうるう年が属する年度を判定させて年間の日数のセルに反映させるなど。 当方エクセル素人なのでよろしくお願いします。

  • 配列

    整数n(n>0)を、k進法(1<k<10)で表すにはどうしたらよいのでしょうか?ちなみにnとkは両方とも入力できるようにして、k進法に変換した結果は配列に記憶してから、その配列を表示したいのですが。 それとは別に、各月の日数を記憶する配列を用意し、初期化で各月の日数を記録させ、a月b日からc月d日まで行われる催事の開催期間(日数)を求めたいです。 a月とc月は同じ年で、閏年はありません。 よろしくお願いします。

  • 規則性

    Aさんは毎月25日が日曜日になることを調べようと思った。 そこで、1月25日から毎月25日までの日数とそれを7で割った余りを表にした。ただし、うるう年ではないとする。 表は         1月25日から     日数を7で         の日数       割ったあまり 1月25日        0          0 2月25日        31          3 3月25日        59          3 4月25日        90          6 5月25日        120         1 6月25日        151         4 7月25日        181         6 8月25日        212         2 9月25日        243         5 10月25日        273         0 11月25日        304          3 12月25日        334         5 (1)表の日数を7で割った余りを求めなさい (1)は簡単に求まりました。 (2)この表をもとにして、25日が日曜日になる月は、1年のうちに最も多いときで何回、最も少ないときで何回あるか求めなさい。 素直に考えると  余りが、3のときが3回あるからこれが最多 余りが、1,2,4のときが1回あるからこれが最小 なので 答えは 最多3回 最小1 となるのですが、全体的にこの問題の内容が把握できてません。これを解説して欲しいです。 私の疑問点は 日数を7で割ると商は何を意味するのですか?また余りは何を意味しているのですか? どうして、25日が日曜日とわかるのですか?