5个版本
0.2.3 | 2024年5月13日 |
---|---|
0.2.2 | 2024年4月19日 |
0.2.1 | 2024年4月18日 |
0.2.0 | 2024年4月18日 |
0.1.0 | 2024年4月18日 |
2 in #stupid
83 个月下载量
24KB
402 行代码(不包括注释)
Minicount,一个小型退款应用程序
Minicount 是一个基于控制台的,自由软件版本的 Tricount 应用程序。
它的目标是使用一种 KISS原则 来最小化一群人的还款次数:没有手机应用,没有数据库,没有服务器。
在 yaml 文件中描述你的费用,让 minicount 输出详细信息。
查看 example.yml
文件以了解语法并创建自己的。
调用
Tricount基本上将一个像这样的 yaml 文件
$cat example.yml
# In this example, we have 3 people: Alice, Bob and Charly
---
# Alice paid a pizza for Bob (and for herself)
- who: Alice
price: 35
what: pizza
for:
- Alice
- Bob
# Alice paid a restaurant to eveybody, no need to add all names
- who: Alice
price: 100
what: sunday's restaurant
# Charly paid some books for Bob
- who: Charly
price: 53
what: books
for: [Bob]
# Bob paid ice creams to Charly and Alice
- who: Bob
price: 35
what: ice creams
for: [Alice, Charly]
转换为你可以发送给朋友的文本报告
$ minicount example.yml
# Bills
- Alice paid 35.00 (pizza for Alice, Bob)
- Alice paid 100.00 (sunday's restaurant for everybody)
- Charly paid 53.00 (books for Bob)
- Bob paid 35.00 (ice creams for Alice, Charly)
# Balances
- Bob: +68.83
- Charly: -2.17
- Alice: -66.67
# Refunds
- Bob pays 66.67 to Alice
- Bob pays 2.17 to Charly
方法
在源代码中可以找到完整的解释(见 src/main.rs
)。
我在一个复杂示例中得到了与 Tricount 应用程序相同的结果,所以我假设算法是相同的。
安装说明
$ cargo install minicount
构建说明
您需要安装 Rustlang 然后构建项目
$ cargo build --release
您将在 target/release/minicount
中找到程序。
许可证
整个项目都在 GNU Affero 通用公共许可证 v3 (AGPL-3.0) 下许可。
GNU Affero 通用公共许可证可以在 https://www.gnu.org/licenses/agpl.html 找到。
有关 AGPL-3.0 的概述,请参阅 tldrlegal。
依赖项
~9–36MB
~530K SLoC