I am trying to create a rainmeter skin for the counting streak. Here is my code:
[Rainmeter]
Update=1000
[Variables]
StartDateTime=2024-02-07T17:30:00
[MeasureStreak]
Measure=Calc
Formula=Floor((Now - !StartDateTime) / (24*3600)) ; Calculate streak as number of days since the start date
DynamicVariables=1
[MeasureHours]
Measure=Calc
Formula=(Floor((Now - !StartDateTime) / 3600)) % 24 ; Calculate remaining hours
[MeasureMinutes]
Measure=Calc
Formula=(Floor((Now - !StartDateTime) / 60)) % 60 ; Calculate remaining minutes
[MeterStreak]
Meter=String
MeasureName=MeasureStreak
Text=Streak: [MeasureStreak] days, [MeasureHours] hours, [MeasureMinutes] minutes
FontFace=Arial
FontSize=12
FontColor=255,255,255,255
SolidColor=0,0,0,150
AntiAlias=1
Padding=5,5,5,5
However, the counter is not working and is always counting 0. What is the problem here?
This is the code I did for the streak, Idk if the hours and minutes are right, but the days are.
[Rainmeter]
Update=1000
[Variables]
StartDateTime=1707331800
[MeasureTimeYear]
measure=Time
Format=%Y
[MeasureTimeMonth]
measure=Time
Format=%m
[MeasureTimeDay]
measure=Time
Format=%d
[MeasureTimeHour]
measure=Time
Format=%H
[MeasureTimeMinute]
measure=Time
Format=%M
[MeasureTimeSeconds]
measure=Time
Format=%S
[MeasureUnixTimestamp]
measure=Script
ScriptFile=#@#\Scripts\Streak.lua
Function=Update
DynamicVariables=1
[measureminutes]
measure=calc
formula=(floor((MeasureUnixTimestamp - #StartDateTime#) / 60)) % 60
[measurestreak]
measure=calc
Formula=floor((MeasureUnixTimestamp - #StartDateTime#) / 86400)
dynamicvariables=1
[measurehours]
measure=calc
formula=(floor((MeasureUnixTimestamp - #StartDateTime#) / 3600)) % 24
[meterstreak]
meter=string
measurename=measurestreak
measurename2=measurehours
measurename3=measureminutes
Text=Streak: %1 days, %2 hours, %3 minutes
fontface=arial
fontsize=12
fontcolor=255,255,255,255
solidcolor=0,0,0,150
antialias=1
padding=5,5,5,5
You will need to Create a Lua File whit this code:
function ConvertToUnixTimestamp()
local year = SKIN:GetMeasure("MeasureTimeYear"):GetValue()
local month = SKIN:GetMeasure("MeasureTimeMonth"):GetValue()
local day = SKIN:GetMeasure("MeasureTimeDay"):GetValue()
local hours = SKIN:GetMeasure("MeasureTimeHour"):GetValue()
local minutes = SKIN:GetMeasure("MeasureTimeMinute"):GetValue()
local seconds = SKIN:GetMeasure("MeasureTimeSeconds"):GetValue()
local dateUnix = os.time({
year = tonumber(year),
month = tonumber(month),
day = tonumber(day),
hour = tonumber(hours),
min = tonumber(minutes),
sec = tonumber(seconds)
})
return dateUnix
end
function Update()
return ConvertToUnixTimestamp()
end
Try this and let me know