- 1 : 2021/05/29(土) 15:03:29.94 ID:MiSuZAgo0
-
https://www.infoq.com/jp/news/2021/05/Net6-Date-Time/
.NETの基本クラスライブラリの長年の問題は、日付と時刻の値を別々に表すことができない
ことである。.NET 6の一部として、新しいDateOnlyクラスとTimeOnlyクラスは、この過失を
修正しようとするものである。90年代以降、Windowsプログラマは、日付と時刻の値に関する最適とは言えない言い分に
対処してきた。Visual Basicには、日付、時刻、日付と時刻、期間の値に使われる
Dateクラスのみがあった。これにより、日付コンポーネントしか保持するつもりがなかった値に対して、
時間コンポーネントも取得しようとする場合によく問題が発生した。その逆も同じである。.NET 1(VB 7)では、Date構造の名前がDateTimeに変更された。
より適切な名前であるが、日付のみの値と日付+時刻の値の両方を表す必要があるという
同じ問題があった。これは、タイムゾーン変換を実行するときに特に問題であった。
DateTime構造に格納されている日付のみの値は、午前1時あるいは午後11時の
時間コンポーネントを簡単に取得できる。後者の場合、1時間のオフセットにより、
日付コンポーネントが前日に変更される。また、.NET 1には、TimeSpan構造の導入があった。これは期間を保存するように設計された。
しかし、多くの場合、その場しのぎの時間のみの構造として活用されていた。
繰り返すが、この手法には問題があった。たとえば、午後10時に3時間を追加すると、予想される午前1時ではなく「1日と2時間」になる。
多くの場合、これは、値がデータベースの時間のみの列に挿入されるまで気付かれず、
その結果、オーバーフローエラーが発生する。以下ソース
- 2 : 2021/05/29(土) 15:03:54.02 ID:VK3aA4LP0
-
はい
- 3 : 2021/05/29(土) 15:05:05.07 ID:mL6P/bo90
-
任天堂スイッチのやつで説明してくれる?
- 4 : 2021/05/29(土) 15:06:21.47 ID:zbwKIdXyO
-
細かいことは気にするな
時間など概念にすぎん - 22 : 2021/05/29(土) 15:43:12.60 ID:PDpN9+y80
-
>>4
今は虚数の時間も扱う時代だから細かいことは気にしない方がいいよね - 5 : 2021/05/29(土) 15:07:46.56 ID:ZfV4aHEB0
-
どんなとき使うんだこれ
- 6 : 2021/05/29(土) 15:09:29.66 ID:2PTpVD0r0
-
10+3が26になるの?
- 7 : 2021/05/29(土) 15:11:28.57 ID:huKgNs9L0
-
0時と24時が区別できないってこと?
- 8 : 2021/05/29(土) 15:11:42.20 ID:PCmU27uC0
-
これ完全な設計ミスに見えるしタイムゾーン気にしなきゃいけない外人の方が嵌りそうなのにこんなクソ仕様を押し通してたのか
- 12 : 2021/05/29(土) 15:16:07.34 ID:ZfV4aHEB0
-
>>8
時差問題はDateTimeOffsetでいいんじゃないかな
他の設計ミスってなに? - 20 : 2021/05/29(土) 15:39:53.75 ID:PCmU27uC0
-
>>12
時刻を必要としない場合やその逆の型がない事そのものが設計ミスだろ - 23 : 2021/05/29(土) 15:43:14.27 ID:ZfV4aHEB0
-
>>20
時刻不要は分かるけど日付は分からんな
俺が「時刻だけ保存する永続化」とか知らないからかね - 9 : 2021/05/29(土) 15:13:09.69 ID:0+IIJs340
-
元々24時設定にしておけば良かったのでは?
- 10 : 2021/05/29(土) 15:13:53.55 ID:0IOyYcKG0
-
沖縄なら1時間くらいどうってことない
- 11 : 2021/05/29(土) 15:14:04.97 ID:F8LCtEi60
-
早稲田予備校の13時の時計みたいな?
- 13 : 2021/05/29(土) 15:16:53.11 ID:oDTdkMO90
-
僕の肛門もオーバーフローです
- 14 : 2021/05/29(土) 15:18:06.22 ID:1Lm+pUlF0
-
>>13
close 忘れるなよ - 15 : 2021/05/29(土) 15:18:14.96 ID:56DvKmMO0
-
DOSの場合、日付と時刻が別のファンクションコールになってるやつか?
- 16 : 2021/05/29(土) 15:18:38.36 ID:+VDEodcZ0
-
excelよりしょぼいの?
- 17 : 2021/05/29(土) 15:18:58.10 ID:fnVF8l1E0
-
>たとえば、午後10時に3時間を追加すると、予想される午前1時ではなく「1日と2時間」になる。
なんで1日と1時間にならないんだ…? - 18 : 2021/05/29(土) 15:20:22.77 ID:V6ycCcUf0
-
>たとえば、午後10時に3時間を追加すると、予想される午前1時ではなく「1日と2時間」になる。
.NETなんて汚らしいもの触ったことないから知らないけど、どういうこと?
- 29 : 2021/05/29(土) 16:06:50.40 ID:9yXVlJp60
-
>>18
.NETを汚らしいとかいえばプロっぽく聞こえるとか誰かに入れ知恵されたのか?
ただの素人の馬鹿としか思われないと思うよ - 19 : 2021/05/29(土) 15:29:49.73 ID:ACwCHpK20
-
ん? 1日と1時間じゃなくて?
11進数みたいになってるって事か? 意味不明だけど。 - 21 : 2021/05/29(土) 15:41:48.49 ID:b+5/CttC0
-
単位の違うものをなんで足すんだ?
- 24 : 2021/05/29(土) 15:48:48.18 ID:c1vVb/yf0
-
ソニータイマーで説明してくれないとわかりません
- 25 : 2021/05/29(土) 16:00:26.21 ID:+v5uk7z50
-
こんなの一回動かしゃわかる話。
アホ設計者やアホ机上コードレビュワーは文章だけでプログラマーが迷わないよう完璧にしようとムダに時間かける。
そんな設計もレビューも無駄。要求設計と受け入れ試験だけ書いてろ。 - 26 : 2021/05/29(土) 16:03:13.46 ID:k7wyry1i0
-
おれが遅刻したのも日帝強占期の35年を引けば予定時刻より遥かに早く到着したといえる
- 27 : 2021/05/29(土) 16:04:51.90 ID:Mj9KOk8A0
-
つーかコンマ以下の値を計算するなら表示しろよ
- 28 : 2021/05/29(土) 16:05:01.48 ID:wuc8l/8L0
-
誰かガンダムで説明して
- 31 : 2021/05/29(土) 16:07:30.47 ID:u07dOGjh0
-
実際に書いてみたら「1.01:00:00」とかいう計算結果になった
訳がわかんねえ - 32 : 2021/05/29(土) 16:08:40.84 ID:prOtxGmT0
-
エクセルは時間の計算苦手だよね
プログラミングで「午後10時に3時間を足すと1日と2時間」になる問題がついに解決へ!

コメント