为什么 Git 有下午茶时间?

在 Git 源代码中的 约会 C文件中,我注意到特殊时间名称的以下结构:

static const struct special {
const char *name;
void (*fn)(struct tm *, struct tm *, int *);
} special[] = {
{ "yesterday", date_yesterday },
{ "noon", date_noon },
{ "midnight", date_midnight },
{ "tea", date_tea },
{ "PM", date_pm },
{ "AM", date_am },
{ "never", date_never },
{ "now", date_now },
{ NULL }
};

我理解其中大部分的实用性(多少有点) ,但是为什么要有一个“下午茶”时间(它的计算结果是17:00小时) ?这只是某种 复活节彩蛋吗?

3927 次浏览

This commit might give you a clue as to why it was included: https://github.com/git/git/commit/a8aca418d6484400d6804e22717bd49ca06c28e9

I think it was suggested initially as a joke, but actually implemented to demonstrate the ability for users to include their own custom time/date periods:

On Fri, 18 Nov 2005, David Roundy wrote:
> Don't forget "high noon"!  (and perhaps "tea time"?)  :)




Done.


[torvalds@g5 git]$ ./test-date "now" "midnight" "high noon" "tea-time"
now -> bad -> Wed Dec 31 16:00:00 1969
now -> Fri Nov 18 08:50:54 2005


midnight -> bad -> Wed Dec 31 16:00:00 1969
midnight -> Fri Nov 18 00:00:00 2005


high noon -> bad -> Wed Dec 31 16:00:00 1969
high noon -> Thu Nov 17 12:00:00 2005


tea-time -> bad -> Wed Dec 31 16:00:00 1969
tea-time -> Thu Nov 17 17:00:00 2005


Thanks for pointing out tea-time.


This is also written to easily extended to allow people to add their own
important dates like Christmas and their own birthdays.


Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>