C 文字列操作 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(文字列と日付・日時・時間の変換)
(文字列と日付・日時・時間の変換)
4,570行: 4,570行:
  
  
時間処理については、また別の場所で考えたいと思いますが、自分が思うところによると、時間処理には、カレンダー日付を伴う日時の概念と、カレンダー日付を考慮しない、時間の概念の2つがあると思います。時間だけの概念ならば24時間を超えて、1週間=168時間、そして1年=8760時間(うるう年の1年は8784時間ですが…)という具合に表現できると思います。この時間の概念に24時間ごとに1日と数える方式として、1.5日(一日半)にあたる36時間だと「1日と12時間」という表現です。日にちを小数点で表すのは、あまり便利ではありませんが、概念としては存在していて、日付単位にすることもありますし、会話の中では具体的な時間を0.5日割り算として、余りを切り捨てる方式が使われると思います。さらには7日毎(168時間)に1週間として表し、「1週間と1日と12時間」の表現や時間を切り捨てる方式や、日付部分を1.5日と表現する方法。そして、ここから先はうるう年や月あたりに日数の関係であいまいな表現になりますが31日or30日で1カ月と表現する方式として「(およそ)1か月と23日」のような表現に365日毎に1年とした「(およそ)1年と(およそ)3カ月と1週間と2日と10時間」のような表現。大きな単位だけを採用して、小さいものを切り捨てるという概念。ここまでは時間についてでしたが更に細かいところでは時間と分と秒でも表現できて、1時間は60分ですが1時間以上の領域も分で表現し続ける方式として、2時間を120分、24時間を1440分と表すこともあります。1週間を超えるところまで分で表すと10080分でこの先も分で表すケースは人間の感覚による理解を超える表現になってくると思います。同じことを秒でも実施して、1分は60秒の領域を超えて1時間を3600秒そして1日は86400秒。秒の場合は1時間から2時間を超えたあたりで、秒での表現の感覚理解の限界を感じます。ここまでのべた大きな単位と組み合わせて使う場合には分や秒は59分や59秒といった範囲以内で利用されます。長くなりましたが、こういったものがカレンダー日付を考慮しない時間という概念になると思います。1年や1カ月がどこの1か月が特定されないのが日常の1年や1カ月という表現になりますので、このあたりの表現は人間にわかりやすく説明するあいまいな表現としてだけ存在すると考えていいと思います。
+
時間処理については、また別の場所で考えたいと思いますが、自分が思うところによると、時間処理には、カレンダー日付を伴う日時の概念と、カレンダー日付を考慮しない、時間の概念の2つがあると思います。時間だけの概念ならば24時間を超えて、1週間=168時間、そして1年=8760時間(うるう年の1年は8784時間ですが…)という具合に表現できると思います。この時間の概念に24時間ごとに1日と数える方式として、1.5日(一日半)にあたる36時間だと「1日と12時間」という表現です。日にちを小数点で表すのは、あまり便利ではありませんが、概念としては存在していて、日付単位にすることもありますし、会話の中では具体的な時間を0.5日割り算として、余りを切り捨てる方式が使われると思います。さらには7日毎(168時間)に1週間として表し、「1週間と1日と12時間」の表現や時間を切り捨てる方式や、日付部分を1.5日と表現する方法。そして、ここから先はうるう年や月あたりに日数の関係であいまいな表現になりますが31日or30日で1カ月と表現する方式として「(およそ)1か月と23日」のような表現に365日毎に1年とした「(およそ)1年と(およそ)3カ月と1週間と2日と10時間」のような表現。大きな単位だけを採用して、小さいものを切り捨てるという概念。ここまでは時間についてでしたが更に細かいところでは時間と分と秒でも表現できて、1時間は60分ですが1時間以上の領域も分で表現し続ける方式として、2時間を120分、24時間を1440分と表すこともあります。1週間を超えるところまで分で表すと10080分でこの先も分で表すケースは人間の感覚による理解を超える表現になってくると思います。同じことを秒でも実施して、1分は60秒の領域を超えて1時間を3600秒そして1日は86400秒。秒の場合は1時間から2時間を超えたあたりで、秒での表現の感覚理解の限界を感じます。ここまでに述べた大きな単位と組み合わせて使う場合には分や秒は59分や59秒といった範囲以内で利用されます。長くなりましたが、こういったものがカレンダー日付を考慮しない時間という概念になると思います。1年や1カ月がどこの1か月か特定されないのが日常の1年や1カ月という表現になりますので、このあたりの表現は人間にわかりやすく説明するあいまいな表現としてだけ存在すると考えていいと思います。
  
  
上記のカレンダー日付を考慮しない時間に加えて、カレンダー日付を考慮した時間の概念が存在し、これらを短い言葉で表現するなら非暦時間、暦時間と表したいと思います。暦時間の差分を考えることで非暦時間がうまれ、暦時間と非暦時間を結合させる場合には、かならず加減算して、暦時間に変化するということになります。計算機の暦時間の概念は、定義された基準時間を起点に秒単位で管理されていること、その起点が1970年1月1日00時00分00秒となっていて、世界協定時刻UTCとよばれる表現で表される。時刻をカウントする変数のbit数が32bitなら2038年まで64bitなら、3000億年までカウントできる仕組みです。
+
上記のカレンダー日付を考慮しない時間に加えて、カレンダー日付を考慮した時間の概念が存在し、これらを短い言葉で表現するなら非暦時間、暦時間と表したいと思います。暦時間の差分を考えることで非暦時間がうまれ、暦時間と非暦時間を結合させる場合には、かならず加減算して、暦時間に変化するということになります。計算機の暦時間の概念は、定義された基準時間を起点に秒単位で管理されていること、その起点が1970年1月1日00時00分00秒となっていて、世界協定時刻UTCとよばれる表現で表されていると理解しておくと良いです。そして、時刻をカウントする変数のbit数が32bitなら2038年までカウントできて、64bitなら3000億年までカウントできる仕組みです。これは個人的な希望になりますが、これからプログラムをする人は64bitの時間変数を扱って欲しいです。作成するプログラムが経済活動や、生活の基盤、生命活動を支えるものであれば尚更です。2038年は、執筆時点からあと24年でやってくるのです。経済的な損失、人的被害、労力を生まないために。各種コンパイラ提供元はそろそろ32bit時間変数のコンパイルをワーニングや使用宣言未定義エラーとかにする工夫を実施しても良いと思うのです。
  
  

2014年10月12日 (日) 00:00時点における版



個人用ツール
名前空間

変種
操作
案内
ツールボックス