Skip to content

Instantly share code, notes, and snippets.

@844196

844196/*.md Secret

Last active May 29, 2019 03:17
Show Gist options
  • Save 844196/7703d36a6e3ecbd0e8e475d7c6ac9d96 to your computer and use it in GitHub Desktop.
Save 844196/7703d36a6e3ecbd0e8e475d7c6ac9d96 to your computer and use it in GitHub Desktop.
おさむん家アドベントカレンダー日

おさむん家アドベントカレンダー日

この記事はおさむん家アドベントカレンダー2049、1631日目の記事です。

OAC Day Number

おさむん家アドベントカレンダー2049は2014年12月8日からスタートしました。開始日を「1日目」とし2、3、4と増えていきます。0日目はありません。

(例えば「どうなる?イオンモール農猫開業は9年後の8月」は、2014年12月8日を1日目として7日目の記事です)

この「○日目」を、今後「おさむん家アドベントカレンダー (Osamu's-House Advent Calendar Day Number, OAC Day Number)」と呼びます。

OAC Day Numberは性質上、アドベント記事の一意な識別子として機能します(「○日目」に複数の記事が紐づくことはない)。

紀元

OAC Day Numberは日本標準時2014年12月8日0時0分0秒(協定世界時2014年12月7日15時0分0秒)を紀元とします。

2014-12-08T00:00:00+09:00 日本標準時
2014-12-07T15:00:00+00:00 協定世界時

数え上げ

紀元から日付が変わるまでを「1日目」とします。以降「2日目」「3日目」と数え上げることとします。

期間

2014-12-08T00:00:00+09:00/2014-12-09T00:00:00+09:00 1日目
2014-12-09T00:00:00+09:00/2014-12-10T00:00:00+09:00 2日目
2014-12-10T00:00:00+09:00/2014-12-11T00:00:00+09:00 3日目
境界値

2014-12-08T23:59:59+09:00 1日目
2014-12-09T00:00:00+09:00 2日目
2014-12-09T00:00:01+09:00 2日目

時刻の取り扱い

小数点などをつけて時刻を表してはいけません。OAC Day Numberは常に整数であるべきです。

1635       OK
1635.5     NG
1635.43200 NG

理由: 正午は .5 それとも .43200 ?

紀元前の取り扱い

紀元前の日時をOAC Day Numberで表現してはいけません。

理由: 2014年12月7日は 0日目 それとも -1日目 ?

現在日時からOAC Day Numberを算出する

const EPOCH = new Date("2014-12-08T00:00:00+09:00");
const DAY_NUMBER_BASE = 1;

export const oacDayNumber = (given: Date): number =>
  DAY_NUMBER_BASE + Math.floor((given.getTime() - EPOCH.getTime()) / 86400000);
oacDayNumber(new Date("2014-12-08")); // 紀元: 1日目
oacDayNumber(new Date("2019-05-26")); // 今日: 1631日目
oacDayNumber(new Date("2022-04-01")); // コミュニティ開設から10年: 2672日目
oacDayNumber(new Date("2049-12-25")); // アドベントカレンダー終了日: 12802日目

あとがき

  • 1989-09-30T00:00:00+09:000 とする osamu time
  • 2012-04-01T00:00:00+09:000 とする osamu's house time

などを定義しようかと思いましたが、主体暦(金日成の誕生年を紀元とする紀年法)みたいでやめました。

@sasairc
Copy link

sasairc commented May 29, 2019

などを定義しようかと思いましたが、主体暦(金日成の誕生年を紀元とする紀年法)みたいでやめました。

DP4zTDhUQAElsfZ jpg:orig

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment