教えて下さい。
C言語を用いてプログラミングをしています。
時刻をマイコン内部で1分毎にカウントしていますが、
外部入力があった際は、時刻を外部入力値に更新します。
時刻は以下の構造体で構成しています。
[年] 0x00~0x63 未設定:0x00
[月] 0x01~0x0c 未設定:0x00
[日] 0x01~0x1f 未設定:0x00
[時] 0x00~0x17 未設定:0xff
[分] 0x00~0x3b 未設定:0xff
[曜] 0x01~0x07 未設定:0x00
-----------------------------------------------------
typedef struct {
unsigned char year_dt;
unsigned char month_dt;
unsigned char day_dt;
unsigned char hour_dt;
unsigned char min_dt;
unsigned char week_dt;
}CALENDER_INFO;
CALENDER_INFO Calender_Before;
CALENDER_INFO Calender_After;
void Calender_Update(void){
/* 処理前の時刻取得 */
Calender_Before= Calender_Data;
if(FLG_ON == F_SOUSA_A){
Calender_Data = Calender_a; /* 外部操作[a]データ反映 */
}else{
if(FLG_ON == F_SOUSA_B){
Calender_Data = Calender_b; /* 外部操作[b]データ反映 */
}else{
Add_1min_Calender(); /* 操作無ければ1分進める */
}
}
/* 処理後の時刻取得 */
Calender_After = Calender_Data;
/* 差分算出 */
???????
return;
}
-----------------------------------------------------
時刻は[正]又は[負]のどちらの方向にも変更される可能性があります。
処理前の時刻情報と処理後の時刻情報をメンバ毎に演算するしかないのでしょうか?
演算の際に時刻の繰り上がりや繰り下がりを考慮しますと、
膨大なif文だらけになりバグが多発していまうのではないかと懸念しております。
初歩的な質問で申し訳ありませんが、
時刻計算にお詳しい方がいらっしゃいましたらご教示宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
日付時刻の構造体は自作のものでなきゃいけない理由はあるのでしょうか?
tm構造体を使えば二つの時間の差も簡単に出せます
time関数を使えるならtm構造体を使わず差を算出できます
文章で書くとややこしくなりそうなので参考サイトを貼ります
http://www.c-tipsref.com/tips/time/time.html
http://www1.cts.ne.jp/~clab/hsample/Time/Time5.h …
恥ずかしながらtm構造体の存在を知りませんでした。
ご教示頂いた参考サイトのmktime関数とlocaltime関数で
問題は解決できそうです。
ご丁寧にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- 仕事術・業務効率化 IF関数で時間指定をして、数値を切り上げたいです 1 2022/05/01 23:37
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- Excel(エクセル) 出退勤管理の遅刻・早退時間について 3 2023/08/10 15:33
- エアコン・クーラー・冷暖房機 日立のエアコンのリモコン 5 2023/04/01 00:25
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでのセル内容の高速消去方法
-
DoEvents関数って何?
-
小数点を含む数値かどうか判断...
-
異なるプログラミング言語を連...
-
win10で、正確な待ち時間の作り方
-
If Not c Is Nothing Then ~延...
-
あっち向いてホイのプログラム...
-
テキストファイルの空行をスキ...
-
EXCELが高速に動く、PCを教えて...
-
VBでの簡易電卓の作成(減算方...
-
ナップザック問題?をエクセル...
-
VB.NETにおける二値化処理の高速化
-
実行時のCPU使用率を増やしたい
-
基本情報技術者試験詳しい方へ...
-
Macターミナルで実行中のプログ...
-
逆コンパイルと逆アセンブルの...
-
緯度、経度の 10進法と 60進法...
-
イラストレーターCS4のシリアル...
-
C言語で、メモリを解放しないで...
-
【C言語】再帰が時間がかかる...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DoEvents関数って何?
-
win10で、正確な待ち時間の作り方
-
Excelでのセル内容の高速消去方法
-
小数点を含む数値かどうか判断...
-
Chat GPTに、課題として、二と...
-
SQLの速度をあげるには・・・
-
絶対パスの取得について
-
WebBrowserの読み込み待ちの処...
-
実行時のCPU使用率を増やしたい
-
プログラム上のCPU稼働率低減に...
-
ノットイコールを教えて下さい
-
C言語:関数を使うメリットとデ...
-
Excel(VBA)でSetTimer関数を使...
-
あっち向いてホイのプログラム...
-
VC++2010 GDIオブジェクトの解...
-
If Not c Is Nothing Then ~延...
-
Excel VBA での処理時間計測結...
-
符号付きにすべきか、符号なし...
-
ソートにかかった時間を測りたい。
-
プログラミングの授業でPython...
おすすめ情報