V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  geelaw  ›  全部回复第 37 页 / 共 183 页
回复总数  3657
1 ... 33  34  35  36  37  38  39  40  41  42 ... 183  
2022-09-12 12:42:24 +08:00
回复了 airbotgo 创建的主题 问与答 如何准确转化年月日的时间?
@geelaw #7

>假设 a b c d e f > 0 且不考虑历法变更而不存在的日子,这些数表达了存在的日子,且 x 年 y 月 z 日不早于 a 年 b 月 c 日。

更正为

>假设 a b c x y z > 0 且不考虑历法变更而不存在的日子,这些数表达了存在的日子,且 x 年 y 月 z 日不晚于 a 年 b 月 c 日。
2022-09-12 12:38:25 +08:00
回复了 airbotgo 创建的主题 问与答 如何准确转化年月日的时间?
@airbotgo #2 你似乎没有理解 #1 的用意。

> 如某事已经过去了 2000 天,如何转化为某事已经过去了“x 年 x 月 x 日”,关键这个“x 日”如何准确计算?

#1 的定义表明从 2000 天无法算出多少年多少月多少日,例如:

2000 年 8 月 31 日是 2000 年 7 月 31 日之后 31 日,也是它之后 0 年 1 月 0 日。
2000 年 10 月 1 日是 2000 年 8 月 31 日之后 31 日,但不是它之后 0 年 1 月 0 日。

同样是 31 日,不能得到它到底是不是 0 年 1 月 0 日。因此问题不成立,但如果你知道开始和结束的日子,则很容易根据定义计算到底是多少年多少月多少日,同理,如果一个软件采用了 #1 的定义,那么它并不是先算出多少日,再仅从多少日转换为多少年多少月多少日的,而是直接算出来。

如果你想问某个软件是如何计算多少年多少月多少日的,最好的方法是直接去看代码,毕竟不同的人定义不同。

如果你想问 #1 的定义下的最佳表达(年数最大的基础上月数最大)如何计算,下面是一种方法:

计算 a 年 b 月 c 日是 x 年 y 月 z 日之后的 u 年 v 月 w 日。假设 a b c d e f > 0 且不考虑历法变更而不存在的日子,这些数表达了存在的日子,且 x 年 y 月 z 日不早于 a 年 b 月 c 日。

https://gist.github.com/GeeLaw/9c68befab1b125a33c52deaf386bf92a
2022-09-12 08:26:38 +08:00
回复了 airbotgo 创建的主题 问与答 如何准确转化年月日的时间?
这取决于你如何定义“过去了 ... 年 ... 月 ... 日”的概念。

例如,2001 年 3 月 1 日是 2000 年 2 月 29 日之后的多少年多少月多少日?

我个人认为无歧义的表达是:
0 年 11 月 31 日
0 年 10 月 62 日
0 年 9 月 92 日
0 年 8 月 123 日
0 年 7 月 153 日
0 年 6 月 184 日
0 年 5 月 215 日
0 年 4 月 245 日
0 年 3 月 276 日
0 年 2 月 306 日
0 年 1 月 337 日
0 年 0 月 366 日

不可以说 2000 年 2 月 29 日的 1 年 0 月 ? 天之后,因为不存在 2001 年 2 月 29 日。

形式化来说,我定义“a 年 b 月 c 日的 x 年 y 月 z 日之后的那一天”的概念存在,当且仅当 (a+x+floor((b-1+y)/12)) 年 1+(b-1+y)%12 月 c 日存在,且这个概念表示的是 (a+x+floor((b-1+y)/12)) 年 1+(b-1+y)%12 月 c 日之后的第 z 日。

换言之,增加 x 年 y 月 z 日的意思是前进 (12x+y) 个月并保持“日”不变(假设这一天存在),然后再前进 z 日,只有年月之间是可以自由转换的,年月和日之间的转换比较复杂。
提示:你看一下视频就知道了
2022-09-06 05:55:27 +08:00
回复了 Ariake265 创建的主题 Windows 纯命令行的 Windows,如何像 Linux 一样“优雅”地使用?
@zedboy #7 你要找的是不是 Copy-Item 带 -FromSession 的版本?
2022-09-01 00:34:40 +08:00
回复了 pepi 创建的主题 程序员 PowerShell 这种强大的命令行工具,为什么使用的人很少?
@mijazz #91 你想说的或许是 Get-ChildItem ,然后 gci 显然是三个单词的首字母,绝大多数情况 cmdlet 后面的名词是单数,除非结果 /目标一定是多个对象的时候,以及除了复数单词更常见的时候(比如是 ...Data 而不是 ...Datum )。
2022-08-31 03:54:53 +08:00
回复了 pepi 创建的主题 程序员 PowerShell 这种强大的命令行工具,为什么使用的人很少?
@statumer
@wxf666
#35 #37

New-Item -Type SymbolicLink -Path foo -Target bar
的可能缩写是
ni -ty s foo -ta bar

我不太确定为什么你想要把对象转换为字符串再过滤,这样会丧失很多数据。

过滤字符串可以缩写为

|sls foo

当然你也可以用 grep 和 find ,都是 Select-String 的意思。

过滤对象可以缩写为

|? 条件

你也可以用 where 。

当然,好的品位是不去比较这种天花乱坠的写法。另外 grep (可执行文件)和 ln (可执行文件)都不是 shell/bash 的一部分。
2022-08-26 15:39:15 +08:00
回复了 shiguiyou 创建的主题 程序员 escape 单词翻译
这应该是计算机里文本编码非常常见的术语,C 语言的 \ 就是转义符。

escape v. 转义。

不是“转译”。这里的意思是说 $ 会改变后面的内容的含义,本来 {abc} 表示的是左大括号、第一个小写拉丁字母、第二个小写拉丁字母、第三个小写拉丁字母、右大括号这五个字符,但是 ${abc} 的意思是 abc 这个变量的值(代入作为字符串的一部分)。

我很少见到 escape (转义)作为及物动词使用,但这里的意思是

记得,$ 符号用于为变量转义。

汉语的“转义”是“改变意思”,因此“变量”并不是“转义”的宾语,被改变意思的是字符,改变后的意思是变量。
2022-08-22 01:50:50 +08:00
回复了 louzhichen 创建的主题 Windows 为什么 windows 自带截图在上方中央有几个像素的蓝-白条
这个问题涉及自定义非客户区和粗细边框问题,见 https://www.zhihu.com/question/38903548/answer/78695890
2022-08-22 00:23:47 +08:00
回复了 Constantping 创建的主题 信息安全 Windows 資料夾權限設置
@qqqyh #20 应该 cite /t/638439 以及我的 blog
2022-08-21 09:27:03 +08:00
回复了 Constantping 创建的主题 信息安全 Windows 資料夾權限設置
不存在,因为进程没有身份。

绕过的方法是建立专门用来运行 Chrome 的用户,然后用那个用户的身份运行 Chrome ,这样可以隔绝 Chrome 和其他本用户身份的程序。
2022-08-17 03:15:50 +08:00
回复了 horseInBlack 创建的主题 分享创造 用剪切板和 BASE64 传输文件
我没看懂这个工具的场景是啥,它要在什么之间传输文件?如果有互联网 /局域网 /蓝牙,直接用互联网 /局域网 /蓝牙的方式传输文件?如果没有,那么除非用外置存储否则文件是如何离开一台电脑的?如果文件不离开电脑,似乎又不需要“传输”?
2022-08-12 10:08:56 +08:00
回复了 ColinZeb 创建的主题 程序员 Windows 11 有没有这样的菜单 Api
@weiwei17Ra #8 开发方法应该是 IConextMenu, IDropTarget, IExecuteCommand, IExplorerCommand, IExplorerCommandState 之类的,不需要 hook explorer 。

如果是静态菜单,有好几种方法:

https://docs.microsoft.com/en-us/windows/win32/shell/creating-static-cascading-menus

如果是动态菜单,目前推荐的方法是使用 IExplorerCommand (简单功能),古老的方法是使用 IContextMenu, IContextMenu2, IContextMenu3 (复杂功能)。

https://docs.microsoft.com/en-us/windows/win32/shell/how-to-implement-the-icontextmenu-interface
2022-08-11 00:31:03 +08:00
回复了 Osk 创建的主题 微软 Windows 的触控板方向太让人精分了
PTP 和 non-PTP 我个人感觉区别还是挺明显的——我使用的第一秒就能区分这块触控板是否是精确的,而且会把精确触控板映射到触摸屏,把非精确触控板映射到鼠标。
2022-08-10 11:01:17 +08:00
回复了 andyJado 创建的主题 分享发现 没有 UI 的软件是不完整的, 比如 Git
你想说的是不是:GUI
2022-08-06 03:29:43 +08:00
回复了 wdc63 创建的主题 C# 我应该如何用 C#方法重载实现这样的目的
你要找的是不是 visitor pattern ?

另外你的例子不好,因为内置类型是无法修改,但如果要考虑的类型是你的代码所控制的,则可以修改。

最后,如果按照你最开始的问题回答,你可以用 dynamic 。
2022-08-05 01:36:40 +08:00
回复了 aaa5838769 创建的主题 Windows windows 12 pro
这种我统称为 WindowBlinds 风格。
2022-08-02 23:19:06 +08:00
回复了 autoxbc 创建的主题 设计 发现很多设计人员缺乏基本的交互常识
当然,我们也可以知道 Apple 的设计师在 iOS 14 之前也不太懂设计(闹钟在 iOS 14 才引入了键入时间机制),而且这不是反话。

这个问题主要是有级(相邻值位置远)和无级(相邻值位置很近)的区别,对于需要精确控制的无级滚动条,应该引入更方便的输入机制。当然设计师可以认为精确调节色温不是需求。
2022-08-02 15:10:38 +08:00
回复了 wenbingkun 创建的主题 Windows Windows 的 users 文件夹下生成的用户文件夹命名规则是什么?
默认情况下文件夹的名字是 Windows 账户名(本地账户或者域账户),如果你在 OOBE 的过程中使用 Microsoft account ,那么本地账户名是邮箱 @ 之前的前五个字符。

如果 C:\Users\账户名 已经存在,那么会改成 C:\Users\账户名.计算机名 或者 C:\Users\账户名.域名,取决于这个账户是本地账户还是域账户。我不知道这两个都存在的时候会如何命名。

我不知道任何受支持的修改账户资料路径的方法,但可以用 sysdm 删除账户资料文件夹,下次登录的时候会重新按照当前的账户名创建。

假设你在 OOBE 阶段使用的 Microsoft account 是 someone @ example.com ,那么默认情况下账户名是 someo ,账户资料文件夹是 C:\Users\someo ,此时可以这样达到修改路径的目的:

1. 备份 C:\Users\someo 。
2. 注销 someo ,用其他(管理员)账户登录,打开 sysdm ,删除 someo 的账户资料文件夹。
3. 打开 lusrmgr ,修改 someo 的账户名为希望的名字,并确保 C:\Users 下没有这个名字的文件、文件夹。
4. 登录修改了名字的 someo ,还原(可还原的)资料。

最后,请给 oh-my-posh 提交 bug 信息,现代 Windows 程序必须处理任何 Win32 可接受的 blob 作为文件名,无论是 Unicode 字符还是具有编码错误的 UTF-16 序列。
@Tumblr #5 一个有趣的小知识,rename-item -newname 可以传入 scriptblock ,可以改写为

Get-ChildItem -Path 'C:\Path\To\Folder' -Recurse -File -Include 'name???.mp3' |
Rename-Item -NewName { $_.Directory.Name + $_.Name } -WhatIf

去掉 -WhatIf 真实运行。
1 ... 33  34  35  36  37  38  39  40  41  42 ... 183  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5647 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 49ms · UTC 03:24 · PVG 11:24 · LAX 20:24 · JFK 23:24
Developed with CodeLauncher
♥ Do have faith in what you're doing.