Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌日历日期键_Javascript_Html_Google Calendar Api - Fatal编程技术网

Javascript 谷歌日历日期键

Javascript 谷歌日历日期键,javascript,html,google-calendar-api,Javascript,Html,Google Calendar Api,谷歌在谷歌日历HTML中为每一天使用一个唯一的日期键 是否有公式来计算给定日期键的日期?看起来他们的工程师使用2^9(512)位来存储年份: 1.1.1970(日期键:33)和1.1.1971(日期键:545)=512 1.1.1972(日期键:1569)和1.1.1972(日期键:2081)=512 和2^5(32)位存储一个月 因此,模计算可以如下所示: function getDate(dateKey) { const yearOffset = (dateKey - 32) % 5

谷歌在谷歌日历HTML中为每一天使用一个唯一的日期键



是否有公式来计算给定日期键的日期?

看起来他们的工程师使用
2^9
512
)位来存储年份:

1.1.1970
(日期键:
33
)和
1.1.1971
(日期键:
545
)=
512

1.1.1972
(日期键:
1569
)和
1.1.1972
(日期键:
2081
)=
512

2^5
32
)位存储一个月

因此,模计算可以如下所示:

function getDate(dateKey) {
  const yearOffset = (dateKey - 32) % 512;
  const year = (dateKey - 32 - yearOffset) / 512;
  const day = yearOffset % 32;
  const month = (yearOffset - day) / 32;
  return new Date(year + 1970, month, day);
}
有人知道他们为什么会提出这样的逻辑吗