C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: 時間の分岐について


(過去ログ 168 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■97316 / inTopicNo.1)  時間の分岐について
  
□投稿者/ 素人44 (3回)-(2021/04/26(Mon) 15:19:11)

分類:[.NET 全般] 

C#での時間の分岐についてご教示願います。

データ----------
時間	高さ
8:00	10
8:10	20
8:20	30
8:30	40
----------------

時間が、8:00:00〜8:05:00の場合、高さ10
    8:05:01〜8:15:00の場合、高さ20
    8:15:01〜8:25:00の場合、高さ30
    8:25:01〜8:35:00の場合、高さ40の様に振り分けたいのですが、どの様な分岐を使用すればよろしいのでしょうか。


引用返信 編集キー/
■97317 / inTopicNo.2)  Re[1]: 時間の分岐について
□投稿者/ furu (110回)-(2021/04/26(Mon) 15:55:19)
No97316 (素人44 さん) に返信
> C#での時間の分岐についてご教示願います。
時刻でなく、時間ならTimeSpanを使います。

TimeSpan 時間;
int 高さ;

if (時間 >= new TimeSpan( 8, 0, 0) && 時間 <= new TimeSpan( 8, 5, 0)) 高さ = 10;

あとはこれの繰り返しですが、秒以下の精度も持っていることを考慮してください。

8時5分0秒234の場合、高さは10なのか20なのか、それとも不定なのか。
引用返信 編集キー/
■97318 / inTopicNo.3)  Re[2]: 時間の分岐について
□投稿者/ 素人44 (5回)-(2021/04/26(Mon) 16:09:09)
No97317 (furu さん) に返信
> ■No97316 (素人44 さん) に返信
>>C#での時間の分岐についてご教示願います。
> 時刻でなく、時間ならTimeSpanを使います。
> 
> TimeSpan   時間;
> int        高さ;
> 
> if (時間 >= new TimeSpan( 8, 0, 0) && 時間 <= new TimeSpan( 8, 5, 0)) 高さ = 10;
> 
> あとはこれの繰り返しですが、秒以下の精度も持っていることを考慮してください。
> 
> 8時5分0秒234の場合、高さは10なのか20なのか、それとも不定なのか。

8時5分0秒234の場合は、高さは10と考えています。

D5 = Convert.ToString(Form1.DataList[i][5]);
DateTime dtBirth = DateTime.Parse(D5);
d = dtBirth.ToString("HH:mm:ss");

D4 = Convert.ToDouble(Form1.DataList[i][3]);

DateTime dt;
DateTime dtBegin;
DateTime dtEnd;
dt = DateTime.Parse(d);
dtBegin = DateTime.Parse(Convert.ToString(dataGridView1[0, 0].Value));
dtEnd = DateTime.Parse(Convert.ToString(dataGridView1[0, dataGridView1.RowCount - 1].Value));

if (((dtBegin <= dt) && (dt <= dtEnd)))
{
    for (int ii = 0; ii <= dataGridView1.RowCount; ii++) //Grid2の行数
    {
    D1 = Convert.ToString(dataGridView1[0, ii].Value);
    DateTime dt1 = DateTime.Parse(D1);

    //20160322
    //DateTime dt2 = dt1.AddMinutes(-10);
    DateTime dt2 = DateTime.Parse(D1);
    //DateTime dt3 = dt1.AddMinutes(10);
    DateTime dt3 = dt1.AddMinutes(5);

    if (dtBirth <= dt3 && dtBirth >= dt2) //ここの分岐方法が分かりません //00:00:00〜00:05:00 00:05:01〜00:15
    {

        DataRow drow = dtable.NewRow();
        
    }
    else
    {

        val_sub2 = Convert.ToDouble(dataGridView1[1, ii].Value); ;
    }

        break;
    }
    else
    {

    }
}
  

引用返信 編集キー/
■97319 / inTopicNo.4)  Re[3]: 時間の分岐について
□投稿者/ furu (111回)-(2021/04/26(Mon) 16:36:59)
No97318 (素人44 さん) に返信
> for (int ii = 0; ii <= dataGridView1.RowCount; ii++) //Grid2の行数
ループが1回多いような

> D1 = Convert.ToString(dataGridView1[0, ii].Value);
> DateTime dt1 = DateTime.Parse(D1);
dataGridView1[0, ii]は時間でなく、日時なの?
それもstring?
引用返信 編集キー/
■97320 / inTopicNo.5)  Re[4]: 時間の分岐について
□投稿者/ 素人44 (7回)-(2021/04/26(Mon) 16:42:03)
No97319 (furu さん) に返信
> ■No97318 (素人44 さん) に返信
>> for (int ii = 0; ii <= dataGridView1.RowCount; ii++) //Grid2の行数
> ループが1回多いような
>
>> D1 = Convert.ToString(dataGridView1[0, ii].Value);
>> DateTime dt1 = DateTime.Parse(D1);
> dataGridView1[0, ii]は時間でなく、日時なの?
> それもstring?

> dataGridView1[0, ii]は日時なのです。
引用返信 編集キー/
■97323 / inTopicNo.6)  Re[5]: 時間の分岐について
□投稿者/ furu (112回)-(2021/04/26(Mon) 17:31:36)
No97320 (素人44 さん) に返信
> ■No97319 (furu さん) に返信
>>■No97318 (素人44 さん) に返信
> >> for (int ii = 0; ii <= dataGridView1.RowCount; ii++) //Grid2の行数
>>ループが1回多いような
>>
> >> D1 = Convert.ToString(dataGridView1[0, ii].Value);
> >> DateTime dt1 = DateTime.Parse(D1);
>>dataGridView1[0, ii]は時間でなく、日時なの?
>>それもstring?
>
>>dataGridView1[0, ii]は日時なのです。
では、
d = dtBirth.ToString("HH:mm:ss");
で時間にしては駄目なんじゃない。

日時なら日時で比較しなきゃ

Form1.DataList[i][5]は、"2021-04-26 08:07:05"
dataGridView1[0, ii]は、"2021-04-26 08:00:00"とかなんだよね。


日時(DateTime)と時間(TimeSpan)は大丈夫?
簡単に言うと日付ないなら時間。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -