DataGridViewに表示した時間1から時間2までの経過時間を計算したいのですが、どのようにすればいいかわかりません。
データはcsvファイルから読み取り、DataGridViewに表示。
ユーザが入力し、上書き保存する、という流れを繰り返します。
項目は1行に9個あり、array<String^>^ Column[8]と配列を準備しています。
5列目が時間1(inTime)、6列目が時間2(outTime)となっています。
入力の形としては、inTimeに8:30、outTimeに20:20と入力し、その経過時間を9列目sumTimeに入れます。
経過時間は分単位、第1小数点まで求めたいです。
計算が必要なので、int型で宣言しています。最大で24時間以上の差がでることはありません。
日付は1列目に"9/20"とまとめてString型で入っています。
データの入出力はできたのですが、計算となると型の変換が必要となり、自分ではできませんでした。
開発環境はVC++2010.NET です。
プログラミングの経験もなく、VCもまだ始めたばかりの初心者です。
しかし、課題なので言語などは変更できません。
私だけでは解決できないので、よろしければアドバイスややり方を教えてください。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
.NET FrameworkのDateTimeとTimeSpanを使えばいいと思いますよ
DateTime% d1 = DateTime::ToDay;
DateTime% d2 = DateTime::ToDay;
TimeSpan sp;
long ldata;
DateTime::TryParse( dt->Rows[n][L"in"], d1 );
DateTime::TryParse( dt->Rows[n][L"out"], d2 );
sp = d2 - d1;
// 分単位を取得
ldata = (long)sp->TotalMinutes;
// 6分の正規化
ldata /= 6;
ldata *= 6;
dt->Rows[n][L"sum"] = (double)ldata/60.;
といった具合で
No.1
- 回答日時:
アルゴリズム(というか手順)の問題かと。
その前に…
>入力の形としては、inTimeに8:30、outTimeに20:20と入力し、その経過時間を9列目sumTimeに入れます。
8時30分と20時20分…ですか?
8分30秒と20分20秒ですか?
前者なら秒の情報が無いので…
>経過時間は分単位、第1小数点まで求めたいです。
で小数点未満が出ることはありませんが。
それとも、CSVには秒単位にデータが入っていて、表示するときに秒の切り捨て(あるいは繰り上げ)でもしているのでしょうか?
とりあえず、数値に変換する際に「分単位」に揃えます。
# CSVが秒単位なら秒単位に揃える。
20*60+20と8*60+30という具合に。
でoutTimeからinTimeを引けば経過時間になります。
# 負数になったら24時間分を加算…ですかね。
分単位に揃える。とかしなくても時間を扱うクラスなどでさっくり処理できる場合もありますが。
# MFCならCTimeとCTimeSpanとか。
回答ありがとうございます。
入力は8時30分と20時20分という意味です。
説明にまちがいがありました。
単位は最終的に時間に直さなければなりませんでした。
小数点が出るのは、6分ごとに0.1を足す計算となっているからです。
60分、つまり1時間たったときに1という計算です。
もし経過時間が8時30分から20時20分の場合、11時間と50分となります。
なので、11*60+50(分)/60=11.8時間(小数第2切り捨て)としたいのです。
.NET FreamWorkなので、MFCのクラスは使えないみたいでした。
入力の際に時間と分の間にコロンが入ってしまいます。(20:40のように)
計算するときには、左から2文字などのように指定ができるのでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- Excel(エクセル) 列を自動で追加したい 3 2022/07/11 12:58
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセル/列追加時、合計行の計算式 7 2023/03/15 11:14
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Java Java モンスターブリーダー 1 2023/02/05 09:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Lとcc(車の排気量)
-
100円単位を切り上げ
-
Wordで何cmとか指定をしたい...
-
比重計算を教えてください
-
長さの単位であるAの上に丸がつ...
-
「414百万円」って、何円ですか?
-
診断書が必要!!
-
一円単位切上げとは?
-
単位法線ベクトルの問題なんで...
-
売り上げが900百万円
-
g/m2 、gsm は何ミリのこ...
-
0に横に線が一本で何と読むでし...
-
10μgとは、mgに換算すると何mg...
-
フラックスの意味が分かりません
-
単位読み方kg/cm2
-
EXCELで軸の目盛り間隔を途中か...
-
10円未満切り上げ
-
単位変換についての質問です。
-
文章の中での数量単位の表示で...
-
見積書の数量の表示について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Lとcc(車の排気量)
-
長さの単位であるAの上に丸がつ...
-
Wordで何cmとか指定をしたい...
-
100円単位を切り上げ
-
一円単位切上げとは?
-
比重計算を教えてください
-
「414百万円」って、何円ですか?
-
10μgとは、mgに換算すると何mg...
-
10円未満切り上げ
-
1升って何リットル?
-
g/m2 、gsm は何ミリのこ...
-
診断書が必要!!
-
0に横に線が一本で何と読むでし...
-
単位読み方kg/cm2
-
【数学】rpmとmin-1の違いって...
-
売り上げが900百万円
-
大きな桁の数字が読めないです
-
単位法線ベクトルの問題なんで...
-
栄養成分表にugという単位
-
1リットルは何ミリリットル?
おすすめ情報