こんにちわ。
VB初心者です。
万年暦の作り方(コードの書き方、流れ、など何でも結構ですので)
教えてください。
西暦と月を入力するとカレンダーが表示されるようなものです・・・。。
大雑把で申し訳ありませんが、よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

こんにちわ。



流れとしましては、入力したい年月(Y年M月とします。)の1日が何曜日か求める。VBにも関数があると思いますが、関数がなければ自分で定義しなければなりません。
この場合、西暦1年1月1日(現実的には1900年1月1日で十分?)からY年M月1日までの経過日数を算出し、7で割った余りが0の時が日曜日です。
この際、閏年を考慮する必要があり、西暦年が4で割り切れる年は閏年。ただし、100で割り切れる年は平年。しかし、400で割り切れる年は閏年、というルールがあります。
後は、配列に順次日数分格納すれば、とりあえず、その月のカレンダーはできると思います。

この他、元号の扱いや国民の祝日なども考慮しなければなりませんし、春・秋分の日も前年11月にしかわかりません。また、旧暦などが入ってくるともっと複雑になります。

とりあえず、何か質問がありましたら、補足要求してください。

参考URL:http://koyomi.vis.ne.jp/mainindex.htm
    • good
    • 0
この回答へのお礼

coco1さんありがとうございます。
参考書なども買ってみたのですが、分からないことだらけです(;´Д`)
できるところまでがんばってみます。
ので、また何かあったらお願いします。

お礼日時:2002/02/24 23:20

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qカレンダーをプログラミング

現在、カレンダーをプログラミングで作成しています。
カレンダーの土日を色づけして表示するところまでは、出来たのですが、祝日でつまづいています。
企業などで、休みは暦通りや、カレンダー通りという言葉を耳にしますが、これを作成するには祝日の振り替え休日のロジックがわかりません。

どの祝日は振り替え休日となるのか、何曜日に対して振り替えされるのか、振り替えされない場合など、ルールがわかりません。

どなたか、詳しい方アドバイスよろしくお願いいたします。
参考URLなどあると助かります。

尚、現在テストプログラムはExcel_VBAで作成しています。
今後、VBかC#でも作成する予定です。

よろしくお願いします。

Aベストアンサー

http://www.h3.dion.ne.jp/~sakatsu/index.htm
がとっても^100 参考になるかと思います。
法令そのものの解説もありますし、考え方も載せてくれています。
週末にでもじっくり読んでみてください。
コードは上記リンク中の「祝日判定ロジック」を読まれることをお勧めします。
VBA、C# ・・・色々と有志の方々が参加されています。

春分の日・秋分の日についてですが
以前(質問者さんは生まれていないかも)に天文学的に微妙な場合がありまして
国の決定した祝日とカレンダー屋さんのが異なることがありました (^_^;)
カレンダー屋さんは早い物は秋口から刷りはじめます。
結果、当社で配るカレンダーには修正シールが付いてきて
みんなでペタペタ貼っていた記憶があります。
それ以来?、前年の2月に官報で発表されることになりました。

QVBでシューティングを製作することになりましたが、今の方向性で正しいのかご指導願いますか?

初めまして。
私は現在高校生でして、文化祭の出し物として私はゲームを出展しようと考えています。
使用言語はVisualBasic6.0なのですが、生憎私はプログラミングソフトを初めて触る初心者でして、5月頃から少しづつ勉強していてもまったく成長が見られません。
確かに基礎は大事だと十分に理解していますが、残り期間も3ヶ月程度に迫った今、果たしてまだ基礎をやっていていいものなのでしょうか。
私の学習法で誤りのある点、や実際にゲームを作る時の製作時間、一日にどれくらいの学習が必要なのか・・etcをご指導いただけないでしょうか。また、参考になる書籍やHPなど、製作の残り期間が少ないという点を考慮した上で紹介していただければ嬉しいです。

尚、作成する予定のソフトは自機や敵機にドット絵を使用し、背景スクロール型、三ステージ構成の縦スクロールシューティングにしたいと考えており、現在二名(両名がグラフィックとプログラムの両方を担当)で製作をしています。
二人ともVB初心者なので現状は芳しくありませんが、夏休みを使ってどうにか・・・と思っています。
私の学習法としましては、昔までは学校で上級生が使用している教科書を借りてそれを見ながらやっていたのですが、グラフィック操作のサンプルが少なく、グラフィック関連を詳しく解説した本を購入し、それを見ながら学習しています。ですがその本は、とても初心者向けに書かれていて、基礎を学ぶには十分なのですが、実際に使えるようなソースは掲載されていませんでした。
迫る締め切りに対し、まだ基本形さえ完成していないので焦りを感じています。
・・・という状況なのです。
非常に身勝手な質問ですが、最後まで読んでいただきありがとうございました。
これを読んだ方の割いてくれた時間を無駄にしないためにも、製作には回答を生かして良い作品を作れるよう、摧心しようと思います。

初めまして。
私は現在高校生でして、文化祭の出し物として私はゲームを出展しようと考えています。
使用言語はVisualBasic6.0なのですが、生憎私はプログラミングソフトを初めて触る初心者でして、5月頃から少しづつ勉強していてもまったく成長が見られません。
確かに基礎は大事だと十分に理解していますが、残り期間も3ヶ月程度に迫った今、果たしてまだ基礎をやっていていいものなのでしょうか。
私の学習法で誤りのある点、や実際にゲームを作る時の製作時間、一日にどれくらいの学習が必要なのか・・etc...続きを読む

Aベストアンサー

正直な感想として、質問に書かれている現在の方向性のままでは実現は難しいと思います。

初心者のプログラミングでいちばん参考になるのは、既にあるプログラムの内容を見ることです。シューティングゲームを作るのであれば、同じシューティングゲームとまでは行かないにしても「リアルタイム性が高く、グラフィックを多用するプログラム」の内容を見ることが重要です。

もっとハッキリ言えば、ただ見るだけでなくコピーして使うことこそが重要です。コピーして、自分が望むのとは違う部分を改造していくわけです。そうすることで、改造したところだけでなく、改造していない部分の理解も深まります。(改造する場所を探すには、まだ改造していない部分をきっちり読んで、どこを改造しなければいけないか理解しないといけないので。)

そういう下敷きになるものなしで、いきなりまとまったものを作成するのは、不可能とは言いませんが、労力を要するばかりで非効率的です。

手がかりを探すとすれば、まずプログラミングの入門書や中級者向けの本のうち、最初からゲーム向けを謳っているものを片っ端から「立ち読み」して、たくさんソースが載っていそうなものを探すこと。そういうことのできる本屋が近くにない場合、次善の策としてはAmazon.co.jp等で書籍を検索してまず目次を見て内容を検討し、次にCD-ROMが付属しているかどうかを確認すること。CD-ROMが付属していればソースが入っている可能性が高いので。(ただし、その辺のフリーソフトばかりという可能性も考えられるので、なるべくCD-ROMの内容についての記述も探しましょう。)

次にウェブサイトの検索。VB、ゲーム、ソース等のキーワードで探しまくりましょう。"visual basic" game "source program" 等、検索キーワードを英語にするのも良いですね。ソースプログラム自体は日本語だろうと英語だろうとたいして変わりませんから。

正直な感想として、質問に書かれている現在の方向性のままでは実現は難しいと思います。

初心者のプログラミングでいちばん参考になるのは、既にあるプログラムの内容を見ることです。シューティングゲームを作るのであれば、同じシューティングゲームとまでは行かないにしても「リアルタイム性が高く、グラフィックを多用するプログラム」の内容を見ることが重要です。

もっとハッキリ言えば、ただ見るだけでなくコピーして使うことこそが重要です。コピーして、自分が望むのとは違う部分を改造していくわ...続きを読む

QTextBoxでEnterキーを押すと、にあるButtonを押したのと同じ効果を出す方法

VB初心者です。
まだ、はじめたばかりなので、上手く質問を説明できませんが、よろしくお願いします。

環境はVisualBasic .net 2003です。

フォームにテキストボックス(TextBox)とボタン(Button)があります。
テキストボックス内でEnterキーを押すと、ボタン(Button)を押したのと同様の効果をだしたいのですが。
VC++6.0だと、SendMessage(WM_COMMAND , .....
のようなやり方でできたはずですが・・・
---------------------------
テキストボックスのコード
Private Sub txtTest_KeyDown(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtTest.KeyDown
If (e.KeyCode = Keys.Enter) Then
'★★★ここでどういうコードを書いてよいかわかりません。
End If
End Sub
----------------------------
ボタンを押したときのイベントハンドラ
Private Sub btnTest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTest.Click
    ボタンを押したら、このイベントハンドラを呼び出したい。
    もしくは、間接的に呼び出したい。
-------
どなたか、やり方をご存知の方がいらっしゃいましたら、よろしくお願いします。

VB初心者です。
まだ、はじめたばかりなので、上手く質問を説明できませんが、よろしくお願いします。

環境はVisualBasic .net 2003です。

フォームにテキストボックス(TextBox)とボタン(Button)があります。
テキストボックス内でEnterキーを押すと、ボタン(Button)を押したのと同様の効果をだしたいのですが。
VC++6.0だと、SendMessage(WM_COMMAND , .....
のようなやり方でできたはずですが・・・
---------------------------
テキストボックスのコード
Private Sub txtTest_KeyDown(ByVal ...続きを読む

Aベストアンサー

>SendMessage(WM_COMMAND
とは、多少意味合いが異なりますが。。。

btnTest.PerformClick()
と行うと、btnTestオブジェクトと関連付いたイベントハンドラが起動します。
http://okwave.jp/kotaeru.php3?q=1688744


また、エンターキーの動きに限るのであれば、フォームのAcceptButtonプロパティを利用すると、コーディングが不要です。ついでにエスケープにも動作を持たせたいのであれば、CancelButtonプロパティを利用するといいです。



どうしてもCと全く同様に、イベントを起こすのであれば、Cと同じ手続きでAPIで起こせばよいと思います。
http://okwave.jp/kotaeru.php3?q=199357


Public Class Form1
  Inherits System.Windows.Forms.Form

  Private Declare Auto Function SendMessage Lib "user32" ( _
    ByVal hWnd As Integer, _
    ByVal wMsg As Integer, _
    ByVal wParam As Integer, _
    ByVal lParam As Integer _
  ) As Integer
  Private Declare Auto Function GetDlgCtrlID Lib "user32" ( _
    ByVal hWnd As Integer _
  ) As Integer

  Private Const WM_COMMAND As Integer = &H111
  Private Const BN_CLICKED As Integer = &H0

#Region " Windows フォーム デザイナで生成されたコード "
#End Region

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    btnTest.PerformClick()
    SendMessage( _
      Me.Handle.ToInt32, _
      WM_COMMAND, _
      BN_CLICKED * GetDlgCtrlID(btnTest.Handle.ToInt32) * &H10000, _
      btnTest.Handle.ToInt32 _
    )
  End Sub
End Class

>SendMessage(WM_COMMAND
とは、多少意味合いが異なりますが。。。

btnTest.PerformClick()
と行うと、btnTestオブジェクトと関連付いたイベントハンドラが起動します。
http://okwave.jp/kotaeru.php3?q=1688744


また、エンターキーの動きに限るのであれば、フォームのAcceptButtonプロパティを利用すると、コーディングが不要です。ついでにエスケープにも動作を持たせたいのであれば、CancelButtonプロパティを利用するといいです。



どうしてもCと全く同様に、イベントを起こすのであれば、...続きを読む


人気Q&Aランキング