インターネット時間ってなに?

 インターネットにはさまざまな国の人がおり、それぞれの時間スケールはばらばらです。
その
時間の誤差を緩和しようと生まれたのが、インターネット時間で、
共通の時刻を各国の人がきがねなく使えます. ※私個人としては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( &ltime );// ローカルタイム
   
    str.Format("@%03lu",swtime( &ltime ) );

    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( &ltime );// ローカルタイム
    printf("@%03lu",swtime( &ltime ) );
    return( 0 );
}

のようにします。
以上

write by y-hosom1@jt2k-puni