Skip to content

Instantly share code, notes, and snippets.

@gwthompson
Forked from fcrespo82/TimeZones.js
Created September 30, 2020 17:22
Show Gist options
  • Save gwthompson/9172c8e967a6e9b7588a5709a26e8369 to your computer and use it in GitHub Desktop.
Save gwthompson/9172c8e967a6e9b7588a5709a26e8369 to your computer and use it in GitHub Desktop.
Scriptable time zones widget
// Variables used by Scriptable.
// These must be at the very top of the file. Do not edit.
// icon-color: cyan; icon-glyph: clock;
let countries = [
{name: "๐Ÿ‡บ๐Ÿ‡ธ", offset: -1, bgColor: new Color("BF0D3E",1)},
{name: "๐Ÿ‡ง๐Ÿ‡ท", offset: 0, bgColor: new Color("009639",1)},
{name: "๐Ÿ‡ฎ๐Ÿ‡ช", offset: 4, bgColor: new Color("FF8200",1)}
]
let widget = new ListWidget()
widget.backgroundColor = Color.black()
let row = widget.addStack()
widget.setPadding(5,5,5,5)
for (i in countries) {
addTimeZone(countries[i], row)
if (i < countries.length -1) {
row.addSpacer(4)
}
}
function addTimeZone(country, r) {
let placeTime = new Date()
placeTime.setTime(placeTime.getTime() + country.offset * 3600000)
let bgColor = Color.white()
if (country.bgColor) {
bgColor = country.bgColor
}
let stack = r.addStack()
stack.setPadding(0,0,0,0)
stack.spacing = 0
stack.layoutVertically()
stack.backgroundColor = bgColor
stack.cornerRadius = 20
let titleStack = stack.addStack()
titleStack.addSpacer()
let title = titleStack.addText(country.name)
title.font = Font.regularRoundedSystemFont(25)
titleStack.backgroundColor = new Color("ffffff", 0.3)
titleStack.addSpacer()
stack.addSpacer()
let formatterTime = new DateFormatter()
formatterTime.dateFormat = "H:mm"
let timeStack = stack.addStack()
timeStack.addSpacer()
let time = timeStack.addText(formatterTime.string(placeTime))
time.font = Font.boldRoundedSystemFont(33)
time.textColor = Color.white()
timeStack.addSpacer()
stack.addSpacer()
let formatterDay = new DateFormatter()
formatterDay.dateFormat = "eee"
let dayStack = stack.addStack()
dayStack.addSpacer()
let day = dayStack.addText(formatterDay.string(placeTime).toLocaleUpperCase())
day.font = Font.regularRoundedSystemFont(20)
day.textColor = Color.white()
dayStack.addSpacer()
let formatterDate = new DateFormatter()
formatterDate.dateFormat = "dd/MM"
let dateStack = stack.addStack()
dateStack.addSpacer()
let date = dateStack.addText(formatterDate.string(placeTime))
date.font = Font.regularRoundedSystemFont(20)
date.textColor = Color.white()
dateStack.addSpacer()
stack.addSpacer()
}
widget.presentMedium()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment