lua 中的每月检查日

问题描述

所以我一直在 Linux 上配置我的 AwesomeWM 主题,但我遇到了这个问题。现在我当然不是专家程序员,所以我想我会来这里寻求帮助。我一直在尝试检查一个月中的某一天是否是 1 到 9 之间的数字,然后会更改日历上重点数字的填充,但似乎不起作用..

imac-apple-mockup-app-38544.jpeg

我在一个完全不同的文件(我的 rc.lua)上遇到错误,我真的不明白为什么。如果有人理解,这是屏幕截图。

1

我能从中了解到的是,以下代码行(来自我的 rc.lua 文件)存在问题:

Match count: 4
Match[1][0]=propertyKey="44772164">
Match[1][1]=44772164
Match[2][0]=propertyKey="44772175">
Match[2][1]=44772175
Match[3][0]=propertyKey="44772176">
Match[3][1]=44772176
Match[4][0]=propertyKey="44772177">

我知道这对于堆栈溢出问题非常具体,但如果有人能提供帮助,我将不胜感激。

解决方法

对,所以这个版本似乎有效:

if (os.date("%d") >= "1") and (os.date("%d") <= "9") then
    theme.calendar_focus_padding = dpi(5)
else
    theme.calendar_focus_padding = dpi(10)
end

但是代码并没有按照它应该的方式运行。我的意思是,尽管这是七月的第二天(这应该将 if 语句切换为 true 并在 if 和 else 语句之前执行所有内容,对吗?)。相反,它执行 else 语句 (theme.calendar_focus_padding = dpi(10)) 下的所有内容。现在怎么样了?

编辑: 所以我发现我必须将 os.date(etc) 转换为 int。我使用 tonumber() 函数这样做了,现在我有了这个,这似乎有效:

day = tonumber(os.date("%d"))

if (day >= 1) and (day <= 9) then
    theme.calendar_focus_padding = dpi(20)
else
    theme.calendar_focus_padding = dpi(10)
end
,

正如@lhf 所提到的,您的代码不是有效的 lua 代码。 Lua 参数可以是字符串、表格、数字或空值——没有对模式的特殊处理(出于这个原因,它们通常被包含在字符串中)

此代码应该可以工作:

FOO

将模式包含在字符串中允许 lua 词法分析器解析它,这意味着代码至少会执行。 if (os.time("%d")>= 1) and (os.time("%d") <= 9) then theme.calendar_focus_padding = dpi(5) else theme.calendar_focus_padding = dpi(10) end 然后应在函数调用中解析 os.time 以提供相关值,在本例中为月中的第几天。