インターネット時間ってなに?
インターネットにはさまざまな国の人がおり、それぞれの時間スケールはばらばらです。
その時間の誤差を緩和しようと生まれたのが、インターネット時間で、
共通の時刻を各国の人がきがねなく使えます. ※私個人としてはGMTでもいいのですけどね
有名な物に Swatch .BEAT があります。
http://www.swatch.com/fs_index.php?haupt=itime&unter=
考え方
まぁ、各国の時間に合わせてしまうと民族紛争とか、60進だから計算がめんどうとか
有るんじゃないでしょうか..?※私の勝手な解釈
開発当時はこれが受けるとは考えなかったようです^^;
Swatch社の本社がスイスにあるので、スイス時間のゼロ時をベースに、0~999 までの数値で時間を表します。
どうやって使うの?
Swatch 社のHomePage上に、swatch internet time を表示する ディスクトップアクセサリがあります.
あと余談ですが、
ちょいと昔 (2000年ごろ)に私が個人的に作った関数が有りますよん(※動作保証しません)
//Swatch Beat を産出する関数 by kata Lab
( Nyaryutia2x Project
//スイス時間 (スイスとグリニッジとの時差 +1:00 (3600sec))
inline static unsigned int swtime(
const time_t *timer )
{
static struct tm* t;
t = gmtime( timer );
return ((t->tm_sec + t->tm_min*60
+ t->tm_hour * 3600 + 3600) * 5 / 432) % 1000;
}
連結サンプル
void CMainFrame::OnUpdateBeat(CCmdUI*
pCmdUI)
{
static CString str;
time_t ltime;
time( <ime );// ローカルタイム
str.Format("@%03lu",swtime( <ime ) );
SetStatusBarPaneText(pCmdUI, str);
}
例として、gcc 使う場合は、
#include <stdio.h>
#include <time.h>
static unsigned int swtime( timer )
const time_t *timer ;
{
static struct tm* t;
t = gmtime( timer );
return ((t->tm_sec + t->tm_min*60
+ t->tm_hour * 3600 + 3600) * 5 / 432) % 1
}
int main( )
{
time_t ltime;
time( <ime );// ローカルタイム
printf("@%03lu",swtime( <ime ) );
return( 0 );
}
のようにします。
以上
write by y-hosom1@jt2k-puni