Skip to content

Instantly share code, notes, and snippets.

@timwillsie
Last active June 2, 2021 04:09
Show Gist options
  • Select an option

  • Save timwillsie/32db56505cbbf49f01e1dd11b095c1c8 to your computer and use it in GitHub Desktop.

Select an option

Save timwillsie/32db56505cbbf49f01e1dd11b095c1c8 to your computer and use it in GitHub Desktop.
Anzeige der verbleibenden Tage bis zum WOA in einem Widget
const endDate = '08/04/2022 05:00:00 PM';
const fontColor = new Color("#918A8A")
const daysTillText = 'Tage bis Wacken'
const logoUrl = 'https://www.wacken.com/fileadmin/user_upload/_ts2-2_/logo_1x-min.png'
const widgetUrl = "https://www.wacken.com"
const daysFont = Font.ultraLightSystemFont(70)
const dummyFont = Font.lightSystemFont(14)
const widget = await createWidget()
widget.backgroundColor = new Color("#000000")
if (!config.runsInWidget) {
await widget.presentSmall()
}
Script.setWidget(widget)
Script.complete()
async function createWidget() {
let daysText, dummyText, row, row2
const widget = new ListWidget()
widget.url = widgetUrl
const logoReq = new Request(logoUrl)
const logoImg = await logoReq.loadImage()
const wimg = widget.addImage(logoImg)
wimg.imageSize = new Size(175,44)
wimg.centerAlignImage()
widget.addSpacer(10)
row = widget.addStack()
row.layoutHorizontally()
row.centerAlignContent()
row.size = new Size(190, 60)
row.addSpacer()
daysText = row.addText(calculateDays(endDate) + '')
daysText.textColor = fontColor
daysText.font = daysFont
row.addSpacer()
row2 = widget.addStack()
row2.layoutHorizontally()
row2.centerAlignContent()
row2.size = new Size(190, 18)
row2.addSpacer()
dummyText = row2.addText(daysTillText)
dummyText.textColor = fontColor
dummyText.font = dummyFont
row2.addSpacer()
return widget
}
function calculateDays(targetDate) {
let days, startDate, timeRemaining;
targetDate = new Date(targetDate);
startDate = new Date();
timeRemaining = parseInt((targetDate.getTime() - startDate.getTime()) / 1000);
if (timeRemaining >= 0) {
days = parseInt(timeRemaining / 86400);
timeRemaining = (timeRemaining % 86400);
return parseInt(days, 10);
} else {
return '???';
}
}
@timwillsie

Copy link
Copy Markdown
Author

Code für 2022 aktualisiert :(

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