carlitosbahia wrote: ↑January 4th, 2022, 5:02 pm
yes, i could see that what i want to do with the months ( previous and next month, not month of previous and next day ) is probably not what most people would want to do in this type of skin
but also would be nice to learn for future skins how i can do that simple math with some variables ( forget about being dates for a second , just any variables ) using a !setvariable inside a IfTrueAction
Apart from the next posts here is an example of code, which does what is required without setting those variables. Yep, I saw death.crafter's code, however if I'm not mistaken, even if it does work for weekdays and dates, it doesn't for month. The months have the problem of variable lengths. How many days are you adding / extracting from the time stamp of a Time measure returning current day, to get the name of previous / next month, no matter of date? What I mean is that for instance on Jan 1 you have to add 31 days (31 x 86400 seconds) to get the name of next month (February), but if you add the same 31 days on Jan 31, you get March instead of February, because February has only 28 (or in leap years 29) days, so adding 31 days is too much in such a case. To fix this, you have to add a variable number of days. See the TimeStamp option of the [MeasurePrevMonth] and [MeasureNextMonth] measures of the below code.
I didn't remove so far all those IfCondition and IfTrueAction options from the Time measures, just commented them out, to let you see how much easier and shorter is such a code. But in fact they are not needed anymore, you can freely remove them. In this approach there is also not needed to set too complicated InlinePatters. They are handled "on fly" in the String meters themselves ([Day], [Number] and [Month]).
If you want, please test the code and let me know what you think.
Code: Select all
[Rainmeter]
Update=1000
OnRefreshAction=[!Move "(#WORKAREAWIDTH#-435-20)" 20]
AccurateText=1
[Metadata]
Name=YetAnotherDateTimeSkin BeforeAFter
Author=CarlitosBahia
Information=First try to make a date/time skin - added Before After
Version=1.0.0
License=Whatever
[Variables]
FontName=Dealerplate California
FontClockSize=90
FontAMPMSize=60
FontMainSize=20
FontFullColor=255,255,255,255
FontDimmedColor=255,255,255,80
Dia=""
DiaMenos=""
DiaMas=""
Numero=""
NumeroMenos=""
NumeroMas=""
Mes=""
Mesmenos=""
MesMas=""
[MeterBack]
Meter=Shape
Shape=Rectangle 0,0,435,240,20 | Fill Color 252,255,225,50 | StrokeWidth 0
; =====> CLOCK
[MeasureClock]
Measure=Time
Format=%I %M
[MeterClock]
Meter=String
MeasureName=MeasureClock
FontFace=#FontName#
FontColor=#FontFullColor#
FontSize=#FontClockSize#
StringAlign=Right
AntiAlias=1
X=235
Y=0
; =====> SECONDS
[MeasureSecs]
Measure=Time
Format=%S
[MeterSecs]
Meter=String
MeasureName=MeasureSecs
FontFace=#FontName#
FontColor=#FontFullColor#
FontSize=#FontAMPMSize#
StringAlign=Center
AntiAlias=1
X=50r
Y=23r
; =====> AM/PM
[MeasureAMPM]
Measure=Time
Format=%p
[MeterAMPM]
Meter=String
MeasureName=MeasureAMPM
FontFace=#FontName#
FontColor=#FontFullColor#
FontSize=#FontAMPMSize#
StringAlign=Center
AntiAlias=1
X=80r
Y=0r
; =====> SUN-SAT
[MeasureDay]
Measure=Time
Format=%A
;IfCondition=MeasureDay = 1
;IfTrueAction=[!SetOption Day InlinePattern MONDAY][!SetVariable DiaMenos SUNDAY][!SetVariable Dia MONDAY][!SetVariable DiaMas TUESDAY]
;IfCondition2=MeasureDay = 2
;IfTrueAction2=[!SetOption Day InlinePattern TUESDAY][!SetVariable DiaMenos MONDAY][!SetVariable Dia TUESDAY][!SetVariable DiaMas WEDNESDAY]
;IfCondition3=MeasureDay = 3
;IfTrueAction3=[!SetOption Day InlinePattern WEDNESDAY][!SetVariable DiaMenos TUESDAY][!SetVariable Dia WEDNESDAY][!SetVariable DiaMas THURSDAY]
;IfCondition4=MeasureDay = 4
;IfTrueAction4=[!SetOption Day InlinePattern THURSDAY][!SetVariable DiaMenos WEDNESDAY][!SetVariable Dia THURSDAY][!SetVariable DiaMas FRIDAY]
;IfCondition5=MeasureDay = 5
;IfTrueAction5=[!SetOption Day InlinePattern FRIDAY][!SetVariable DiaMenos THURSDAY][!SetVariable Dia FRIDAY][!SetVariable DiaMas SATURDAY]
;IfCondition6=MeasureDay = 6
;IfTrueAction6=[!SetOption Day InlinePattern SATURDAY][!SetVariable DiaMenos FRIDAY][!SetVariable Dia SATURDAY][!SetVariable DiaMas SUNDAY]
;IfCondition7=(MeasureDay = 7)
;IfTrueAction7=[!SetOption Day InlinePattern SUNDAY][!SetVariable DiaMenos SATURDAY][!SetVariable Dia SUNDAY][!SetVariable DiaMas MONDAY]
[MeasurePrevDay]
Measure=Time
Format=%A
TimeStamp=([MeasureNumber:TimeStamp]-86400)
DynamicVariables=1
[MeasureNextDay]
Measure=Time
Format=%A
TimeStamp=([MeasureNumber:TimeStamp]+86400)
DynamicVariables=1
[Day]
Meter=String
MeasureName=MeasurePrevDay
MeasureName2=MeasureDay
MeasureName3=MeasureNextDay
FontFace=#FontName#
FontSize=#FontMainSize#
FontColor=#FontDimmedColor#
Text=%1 %2 %3
InlineSetting=Color | #FontFullColor#
InlinePattern=[MeasureDay]
Antialias=1
StringAlign=Center
X=215
Y=5R
DynamicVariables=1
; =====> 1-31
[MeasureNumber]
Measure=Time
Format=%#d
;IfCondition=MeasureNumber = 1
;IfTrueAction=[!SetOption Number InlinePattern " 1 "][!SetVariable NumeroMenos 31][!SetVariable Numero 1][!SetVariable NumeroMas 2]
;IfCondition2=MeasureNumber = 2
;IfTrueAction2=[!SetOption Number InlinePattern " 2 "][!SetVariable NumeroMenos 1][!SetVariable Numero 2][!SetVariable NumeroMas 3]
;IfCondition3=MeasureNumber = 3
;IfTrueAction3=[!SetOption Number InlinePattern " 3 "][!SetVariable NumeroMenos 2][!SetVariable Numero 3][!SetVariable NumeroMas 4]
;IfCondition4=MeasureNumber = 4
;IfTrueAction4=[!SetOption Number InlinePattern " 4 "][!SetVariable NumeroMenos 3][!SetVariable Numero 4][!SetVariable NumeroMas 5]
;IfCondition5=MeasureNumber = 5
;IfTrueAction5=[!SetOption Number InlinePattern " 5 "][!SetVariable NumeroMenos 4][!SetVariable Numero 5][!SetVariable NumeroMas 6]
;IfCondition6=MeasureNumber = 6
;IfTrueAction6=[!SetOption Number InlinePattern " 6 "][!SetVariable NumeroMenos 5][!SetVariable Numero 6][!SetVariable NumeroMas 7]
;IfCondition7=MeasureNumber = 7
;IfTrueAction7=[!SetOption Number InlinePattern " 7 "][!SetVariable NumeroMenos 6][!SetVariable Numero 7][!SetVariable NumeroMas 8]
;IfCondition8=MeasureNumber = 8
;IfTrueAction8=[!SetOption Number InlinePattern " 8 "][!SetVariable NumeroMenos 7][!SetVariable Numero 8][!SetVariable NumeroMas 9]
;IfCondition9=MeasureNumber = 9
;IfTrueAction9=[!SetOption Number InlinePattern " 9 "][!SetVariable NumeroMenos 8][!SetVariable Numero 9][!SetVariable NumeroMas 10]
;IfCondition10=MeasureNumber = 10
;IfTrueAction10=[!SetOption Number InlinePattern " 10 "][!SetVariable NumeroMenos 9][!SetVariable Numero 10][!SetVariable NumeroMas 11]
;IfCondition11=MeasureNumber = 11
;IfTrueAction11=[!SetOption Number InlinePattern " 11 "][!SetVariable NumeroMenos 10][!SetVariable Numero 11][!SetVariable NumeroMas 12]
;IfCondition12=MeasureNumber = 12
;IfTrueAction12=[!SetOption Number InlinePattern " 12 "][!SetVariable NumeroMenos 11][!SetVariable Numero 12][!SetVariable NumeroMas 13]
;IfCondition13=MeasureNumber = 13
;IfTrueAction13=[!SetOption Number InlinePattern " 13 "][!SetVariable NumeroMenos 12][!SetVariable Numero 13][!SetVariable NumeroMas 14]
;IfCondition14=MeasureNumber = 14
;IfTrueAction14=[!SetOption Number InlinePattern " 14 "][!SetVariable NumeroMenos 13][!SetVariable Numero 14][!SetVariable NumeroMas 15]
;IfCondition15=MeasureNumber = 15
;IfTrueAction15=[!SetOption Number InlinePattern " 15 "][!SetVariable NumeroMenos 14][!SetVariable Numero 15][!SetVariable NumeroMas 16]
;IfCondition16=MeasureNumber = 16
;IfTrueAction16=[!SetOption Number InlinePattern " 16 "][!SetVariable NumeroMenos 15][!SetVariable Numero 16][!SetVariable NumeroMas 17]
;IfCondition17=MeasureNumber = 17
;IfTrueAction17=[!SetOption Number InlinePattern " 17 "][!SetVariable NumeroMenos 16][!SetVariable Numero 17][!SetVariable NumeroMas 18]
;IfCondition18=MeasureNumber = 18
;IfTrueAction18=[!SetOption Number InlinePattern " 18 "][!SetVariable NumeroMenos 17][!SetVariable Numero 18][!SetVariable NumeroMas 19]
;IfCondition19=MeasureNumber = 19
;IfTrueAction19=[!SetOption Number InlinePattern " 19 "][!SetVariable NumeroMenos 18][!SetVariable Numero 19][!SetVariable NumeroMas 20]
;IfCondition20=MeasureNumber = 20
;IfTrueAction20=[!SetOption Number InlinePattern " 20 "][!SetVariable NumeroMenos 19][!SetVariable Numero 20][!SetVariable NumeroMas 21]
;IfCondition21=MeasureNumber = 21
;IfTrueAction21=[!SetOption Number InlinePattern " 21 "][!SetVariable NumeroMenos 20][!SetVariable Numero 21][!SetVariable NumeroMas 22]
;IfCondition22=MeasureNumber = 22
;IfTrueAction22=[!SetOption Number InlinePattern " 22 "][!SetVariable NumeroMenos 21][!SetVariable Numero 22][!SetVariable NumeroMas 23]
;IfCondition23=MeasureNumber = 23
;IfTrueAction23=[!SetOption Number InlinePattern " 23 "][!SetVariable NumeroMenos 22][!SetVariable Numero 23][!SetVariable NumeroMas 24]
;IfCondition24=MeasureNumber = 24
;IfTrueAction24=[!SetOption Number InlinePattern " 24 "][!SetVariable NumeroMenos 23][!SetVariable Numero 24][!SetVariable NumeroMas 25]
;IfCondition25=MeasureNumber = 25
;IfTrueAction25=[!SetOption Number InlinePattern " 25 "][!SetVariable NumeroMenos 24][!SetVariable Numero 25][!SetVariable NumeroMas 26]
;IfCondition26=MeasureNumber = 26
;IfTrueAction26=[!SetOption Number InlinePattern " 26 "][!SetVariable NumeroMenos 25][!SetVariable Numero 26][!SetVariable NumeroMas 27]
;IfCondition27=MeasureNumber = 27
;IfTrueAction27=[!SetOption Number InlinePattern " 27 "][!SetVariable NumeroMenos 26][!SetVariable Numero 27][!SetVariable NumeroMas 28]
;IfCondition28=MeasureNumber = 28
;IfTrueAction28=[!SetOption Number InlinePattern " 28 "][!SetVariable NumeroMenos 27][!SetVariable Numero 28][!SetVariable NumeroMas 29]
;IfCondition29=MeasureNumber = 29
;IfTrueAction29=[!SetOption Number InlinePattern " 29 "][!SetVariable NumeroMenos 28][!SetVariable Numero 29][!SetVariable NumeroMas 30]
;IfCondition30=MeasureNumber = 30
;IfTrueAction30=[!SetOption Number InlinePattern " 30 "][!SetVariable NumeroMenos 29][!SetVariable Numero 30][!SetVariable NumeroMas 31]
;IfCondition31=MeasureNumber = 31
;IfTrueAction31=[!SetOption Number InlinePattern " 31 "][!SetVariable NumeroMenos 30][!SetVariable Numero 31][!SetVariable NumeroMas 1]
[MeasureYesterday]
Measure=Time
Format=%#d
TimeStamp=([MeasureNumber:TimeStamp]-86400)
DynamicVariables=1
[MeasureTomorrow]
Measure=Time
Format=%#d
TimeStamp=([MeasureNumber:TimeStamp]+86400)
DynamicVariables=1
[Number]
Meter=String
MeasureName=MeasureYesterday
MeasureName2=MeasureNumber
MeasureName3=MeasureTomorrow
FontFace=#FontName#
FontColor=#FontDimmedColor#
FontSize=#FontMainSize#
Text=%1 %2 %3
InlineSetting=Color | #FontFullColor#
InlinePattern=[MeasureNumber]
Antialias=1
StringAlign=Center
X=215
Y=0R
DynamicVariables=1
; =====> JAN-DEC
[MeasureMonth]
Measure=Time
Format=%b
;IfMatch=Jan
;IfMatchAction=[!SetOption Month InlinePattern JANUARY][!SetVariable MesMenos DECEMBER][!SetVariable Mes JANUARY][!SetVariable MesMas FEBRAURY]
;IfMatch2=Feb
;IfMatchAction2=[!SetOption Month InlinePattern FEBRAURY][!SetVariable MesMenos JANUARY][!SetVariable Mes FEBRAURY][!SetVariable MesMas MARCH]
;IfMatch3=Mar
;IfMatchAction3=[!SetOption Month InlinePattern MARCH][!SetVariable MesMenos FEBRAURY][!SetVariable Mes MARCH][!SetVariable MesMas APRIL]
;IfMatch4=Apr
;IfMatchAction4=[!SetOption Month InlinePattern APRIL][!SetVariable MesMenos MARCH][!SetVariable Mes APRIL][!SetVariable MesMas MAY]
;IfMatch5=May
;IfMatchAction5=[!SetOption Month InlinePattern MAY][!SetVariable MesMenos APRIL][!SetVariable Mes MAY][!SetVariable MesMas JUNE]
;IfMatch6=Jun
;IfMatchAction6=[!SetOption Month InlinePattern JUNE][!SetVariable MesMenos MAY][!SetVariable Mes JUNE][!SetVariable MesMas JULY]
;IfMatch7=July
;IfMatchAction7=[!SetOption Month InlinePattern JULY][!SetVariable MesMenos JUNE][!SetVariable Mes JULY][!SetVariable MesMas AUGUST]
;IfMatch8=Aug
;IfMatchAction8=[!SetOption Month InlinePattern AUGUST][!SetVariable MesMenos JULY][!SetVariable Mes AUGUST][!SetVariable MesMas SEPTEMBER]
;IfMatch9=Sept
;IfMatchAction9=[!SetOption Month InlinePattern SEPTEMBER][!SetVariable MesMenos AUGUST][!SetVariable Mes SEPTEMBER][!SetVariable MesMas OCTOBER]
;IfMatch10=Oct
;IfMatchAction10=[!SetOption Month InlinePattern OCTOBER][!SetVariable MesMenos SEPTEMBER][!SetVariable Mes OCTOBER][!SetVariable MesMas NOVEMBER]
;IfMatch11=Nov
;IfMatchAction11=[!SetOption Month InlinePattern NOVEMBER][!SetVariable MesMenos OCTOBER][!SetVariable Mes NOVEMBER][!SetVariable MesMas DECEMBER]
;IfMatch12=Dic
;IfMatchAction12=[!SetOption Month InlinePattern DECEMBER][!SetVariable MesMenos NOVEMBER][!SetVariable Mes DECEMBER][!SetVariable MesMas JANUARY]
[MeasurePrevMonth]
Measure=Time
Format=%b
TimeStamp=([MeasureNumber:TimeStamp]-31*86400+(([MeasureNumber]<5)*10*86400))
DynamicVariables=1
[MeasureNextMonth]
Measure=Time
Format=%b
TimeStamp=([MeasureNumber:TimeStamp]+31*86400-(([MeasureNumber]>25)*10*86400))
DynamicVariables=1
[Month]
Meter=String
MeasureName=MeasurePrevMonth
MeasureName2=MeasureMonth
MeasureName3=MeasureNextMonth
FontFace=#FontName#
FontColor=#FontDimmedColor#
FontSize=#FontMainSize#
Text=%1 %2 %3
InlineSetting=Color | #FontFullColor#
InlinePattern=[MeasureMonth]
Antialias=1
StringAlign=Center
X=215
Y=0R
DynamicVariables=1