GetDateTimeの使い方
GetDateTimeの使い方
DXライブラリを使ってカレンダーを作ろうとしているのですが、GetDateTimeの使い方がわかりません。どなたか分かりやすく教えてください。お願いします。
Re: GetDateTimeの使い方
http://homepage2.nifty.com/natupaji/DxL ... .html#R7N3
にサンプルコードがあります.
そのサンプルコードを見ても分からないというなら,再度ご質問ください.
にサンプルコードがあります.
そのサンプルコードを見ても分からないというなら,再度ご質問ください.
Re: GetDateTimeの使い方
書き方は分かりました。しかしまだ分からないところがあって、
①DATEDATA Date とは何ですか?
②x年z月y日a時b分c秒と表示するにはどうすればいいですか?
①DATEDATA Date とは何ですか?
②x年z月y日a時b分c秒と表示するにはどうすればいいですか?
Re: GetDateTimeの使い方
①
②
DATEDATA構造体には年,月,日などに対応した変数がありますので,それを利用します.
DrawFormatStringでも使えばいいと思います.
ということで,DATEDATAというのは構造体の型名(恐らくtypedefしてあるのでしょう)であり,DATEDATA Date;はDATEDATA型の変数を定義しています.DXライブラリ置き場 リファレンスページ さんが書きました: DXライブラリ独自の DATEDATA 構造体に現在時刻を 格納します。 DATEDATA 構造体は以下のようなメンバ変数で成り 立っています。
int Year ; // 年
int Mon ; // 月
int Day ; // 日
int Hour ; // 時間
int Min ; // 分
int Sec ; // 秒
②
DATEDATA構造体には年,月,日などに対応した変数がありますので,それを利用します.
DrawFormatStringでも使えばいいと思います.
Re: GetDateTimeの使い方
int Color;
DATEDATA Date;
Color = GetColor( 255 , 255 , 255 ) ;
DrawFormatString( 0, 0, Color, "いまは%d年%d月%d日%d時%d分%d秒です。Yn",Year,Mon,Day,Hour,Min,Sec );
//(円の記号が出なかったのでかわりにYとしました。)
これでいいですか?
DATEDATA Date;
Color = GetColor( 255 , 255 , 255 ) ;
DrawFormatString( 0, 0, Color, "いまは%d年%d月%d日%d時%d分%d秒です。Yn",Year,Mon,Day,Hour,Min,Sec );
//(円の記号が出なかったのでかわりにYとしました。)
これでいいですか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: GetDateTimeの使い方
試せばすぐ結論が分かると思いますが、如何でしたか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: GetDateTimeの使い方
本来,エスケープシーケンスに用いるのはバックスラッシュでして,円マークはたまたま日本語環境でバックスラッシュが円マークに割り当てられているだけです.3817 さんが書きました:円の記号が出なかったのでかわりにYとしました。
ですから,この掲示板では\nと書けば良いです.
Re: GetDateTimeの使い方
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
DATEDATA Date ;
int Color;
ChangeWindowMode( TRUE ) ;
if( DxLib_Init() == -1 )return -1;
while(1){
GetDateTime( &Date );
Color=GetColor(255,255,255);
DrawFormatString(0,0,Color,"いまは%d年%d月%d日%d時%d分%d秒です。\n",Year,Mon,Day,Hour,Min,Sec);
if(ProcessMessage()==-1) break;
if(CheckHitKey(KEY_INPUT_ESCAPE)==1)break;
}
DxLib_End() ;
return 0 ;
}
でコンパイルしようとすると「'Year' : 定義されていない識別子です。」(Mon,Day,Hour,Min,Secもすべて同じく)と出て、ビルドエラーが起こります。どうしたらよいですか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: GetDateTimeの使い方
構造体の勉強はされましたか?
DATEDATA Date ;
からデータを取り出すためには専用の書き方があります。
DATEDATA Date ;
からデータを取り出すためには専用の書き方があります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: GetDateTimeの使い方
最低限必要なのは、構造体変数名.メンバ変数名でしか情報を取り扱えないということを理解することです。
Date.メンバ変数名で内容を参照する必要があります。
「構造体 メンバ参照(直接参照)」
http://www.cc.kyoto-su.ac.jp/~yamada/pB ... tml#direct
DrawFormatString(0,0,Color,"いまは%d年%d月%d日%d時%d分%d秒です。\n",Year,Mon,Day,Hour,Min,Sec);
このYearとかの書き方で扱えるのは単純な変数だけで構造体の参照方法ではありません。
言うなれば荷物を山田さんから受け取って下さいと言われてるようなもので、何処の山田さん?って聞きたくなると思いますがその何処のの情報が抜け落ちているということです。
Date.メンバ変数名で内容を参照する必要があります。
「構造体 メンバ参照(直接参照)」
http://www.cc.kyoto-su.ac.jp/~yamada/pB ... tml#direct
DrawFormatString(0,0,Color,"いまは%d年%d月%d日%d時%d分%d秒です。\n",Year,Mon,Day,Hour,Min,Sec);
このYearとかの書き方で扱えるのは単純な変数だけで構造体の参照方法ではありません。
言うなれば荷物を山田さんから受け取って下さいと言われてるようなもので、何処の山田さん?って聞きたくなると思いますがその何処のの情報が抜け落ちているということです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: GetDateTimeの使い方
それでは、
とすればよいのですね
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
struct DATEDATA Date ;
int Color;
ChangeWindowMode( TRUE ) ;
if( DxLib_Init() == -1 )return -1;
while(1){
GetDateTime( &Date );
Color=GetColor(255,255,255);
DrawFormatString(0,0,Color,"いまは%d年%d月%d日%d時%d分%d秒です。\n",Date.Year,Date.Mon,Date.Day,Date.Hour,Date.Min,Date.Sec);
if(ProcessMessage()==-1) break;
if(CheckHitKey(KEY_INPUT_ESCAPE)==1)break;
}
DxLib_End() ;
return 0 ;
}
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: GetDateTimeの使い方
上にも書きましたが試されてどうでしたか?
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 14年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: GetDateTimeの使い方
まずはじめに出ているエラーメッセージを読んで下さい。
そうすればエラーの理由がわかります。
それを踏まえてNo.2で書かれたサンプルコードと見比べてみて下さい。
どこか違いますよね。
また、それを直したとしても、そのループは「消す」という処理が無いので、ドンドンわけのわからない表示になります。
基本コードについてはこちらをご覧ください。
http://dixq.net/g/01_09.html
そうすればエラーの理由がわかります。
それを踏まえてNo.2で書かれたサンプルコードと見比べてみて下さい。
どこか違いますよね。
また、それを直したとしても、そのループは「消す」という処理が無いので、ドンドンわけのわからない表示になります。
基本コードについてはこちらをご覧ください。
http://dixq.net/g/01_09.html
Re: GetDateTimeの使い方
「'Year' : 定義されていない識別子です。」(Mon,Day,Hour,Min,Secもすべて同じく)と出て、ビルドエラーが起こります。
自力で解決させる意図なのだとは思いますが、私も忙しいので簡潔に答えて頂かないと困ります。
自力で解決させる意図なのだとは思いますが、私も忙しいので簡潔に答えて頂かないと困ります。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: GetDateTimeの使い方
申し訳ないですが急いでいらっしゃることは今はじめてお伺いしました。3817 さんが書きました:「'Year' : 定義されていない識別子です。」(Mon,Day,Hour,Min,Secもすべて同じく)と出て、ビルドエラーが起こります。
自力で解決させる意図なのだとは思いますが、私も忙しいので簡潔に答えて頂かないと困ります。
フォーラムルールにあります通りお急ぎの場合は期日を書いていただけると助かります。 → http://dixq.net/board/board.html
それと、基本的にはご本人に考えていただくのがここの掲示板の意図となりますのでご了解下さい。
お急ぎみたいですので答えとしては、
struct DATEDATA Date ;
が元のままでよかったのです。
ここの部分もエラーとして出ているはずです。
最後に構造体など知識が無い状態でC言語のプログラムを組むことは無理がありますので勉強されることをお勧めします。
【追記】
3817さんとしては、とりあえず答えが欲しいのかプログラムを作れるようになりたいのか、どちらなのでしょうか?
後者なら、多少時間がかかっても地道に取り組むことも必要で時には入門書と向かい合うことも重要です。
我々もその勉強のお手伝いとしたいと考えておりますので、ご理解下さい。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。