Skip to content

Instantly share code, notes, and snippets.

@ktakayama
Created January 6, 2010 07:30
Show Gist options
  • Save ktakayama/270108 to your computer and use it in GitHub Desktop.
Save ktakayama/270108 to your computer and use it in GitHub Desktop.
// ==UserScript==
// @name iTC time zone
// @namespace http://iphone-dev.g.hatena.ne.jp/ktakayama/
// @description iTC time zone
// @include https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/*
// ==/UserScript==
(function() {
var path = "//div[@class='versionStateHistory-col-0']/p";
var nodes = document.evaluate(
path, document, null,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null
);
var hour = 60 * 60 * 1000; // 1hour
var local = - new Date().getTimezoneOffset() / 60;
var difference = hour * (8 + local);
for(var i = 1, elm; elm = nodes.snapshotItem(i); i++) {
var date = new Date(Date.parse(elm.innerHTML));
var d = difference;
if(checkSummerTime(date)) d -= hour;
elm.innerHTML = (new Date(date.getTime() + d)).toString();
i++;
}
})();
function checkSummerTime(date) {
var year = date.getFullYear();
var time = date.getTime();
return (stStart(year).getTime() < time && stEnd(year).getTime() > time);
}
// 3月の第2日曜日2時
function stStart(year) {
var date = new Date(year, 2, 1, 2, 0, 0);
for(var i = 8; i <= 14; i++) {
date.setDate(i);
if(0 == date.getDay()) break;
}
return date;
}
// 11月の第1日曜日2時
function stEnd(year) {
var date = new Date(year, 10, 1, 2, 0, 0);
for(var i = 1; i <= 7; i++) {
date.setDate(i);
if (0 == date.getDay()) break;
}
return date;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment