time.tin 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. #nop vim: set filetype=tt:;
  2. /*
  3. 本文件属于 PaoTin++ 的一部分。
  4. PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 享有并保留一切法律权利
  5. 你可以在遵照 GPLv3 协议的基础之上使用、修改及重新分发本程序。
  6. */
  7. #nop 本文件是 xtintin 的一部分,实现了一些时间处理函数;
  8. ///=== {
  9. ///// 时间处理函数:
  10. //
  11. // #@ time.Now
  12. // 返回当前系统时间戳。
  13. // };
  14. #func {time.Now} {
  15. #local format {%0};
  16. #if { "$format" != "%%{T|U}" } {
  17. #local format {%T};
  18. };
  19. #local time {0};
  20. #format time {$format};
  21. #return {$time};
  22. };
  23. ///=== {
  24. // #@ time.ParseDoC <时间长度文本>
  25. // 将中文书写的时间长度(Duration of Chinese)文本转换成以秒为单位的整数值。
  26. // };
  27. #func {time.ParseDoC} {
  28. #local {timeStr} {%0};
  29. #nop 兼容不同的写法;
  30. #replace {timeStr} {个} {};
  31. #replace {timeStr} {星期} {周};
  32. #replace {timeStr} {小时} {时};
  33. #replace {timeStr} {分钟} {分};
  34. #nop 注意这里用了个小技巧,末尾的空格不要去掉;
  35. #replace timeStr {%S年} {@math.ParseCN{&1}*31104000+ };
  36. #replace timeStr {%S月} {@math.ParseCN{&1}*2592000+ };
  37. #replace timeStr {%S周} {@math.ParseCN{&1}*604800+ };
  38. #replace timeStr {%S天} {@math.ParseCN{&1}*86400+ };
  39. #replace timeStr {%S时} {@math.ParseCN{&1}*3600+ };
  40. #replace timeStr {%S分} {@math.ParseCN{&1}*60+ };
  41. #replace timeStr {%S秒} {@math.ParseCN{&1}};
  42. #local time {};
  43. #math time {$timeStr + 0};
  44. #return {$time};
  45. };
  46. ///=== {
  47. // #@ time.Format [<时间戳> [<格式字符串>]]
  48. // 将指定时间戳按照格式字符串要求,转换成字符串。
  49. // 格式字符串参见 #help time,如果省略则为 %Y-%m-%d %H:%M:%S。
  50. // 时间戳如果省略则为当前系统时间。
  51. // };
  52. #func {time.Format} {
  53. #local time {@defaultNum{%1;@time.Now{%U}}};
  54. #local format {@default{%2;{%Y-%m-%d %H:%M:%S}}};
  55. #format result {%t} {{$format}{$time}};
  56. #return {$result};
  57. };
  58. ///=== {
  59. // #@ time.FormatNow [<格式字符串>]]
  60. // 将指定时间戳按照格式字符串要求,转换成字符串。
  61. // 格式字符串参见 #help time,如果省略则为 %Y-%m-%d %H:%M:%S。
  62. // };
  63. #func {time.FormatNow} {
  64. #local time {@time.Now{%U}};
  65. #local format {@default{%1;{%Y-%m-%d %H:%M:%S}}};
  66. #format result {%t} {{$format}{$time}};
  67. #return {$result};
  68. };
  69. ///=== {
  70. // #@ time.Date [<时间戳>]
  71. // 将指定时间戳转换成 YYYY-mm-dd 格式的日期字符串。
  72. // 时间戳如果省略则为当前系统时间。
  73. // };
  74. #func {time.Date} {
  75. #local time {@defaultNum{%1;@time.Now{}}};
  76. #local format {@default{%2;{%Y-%m-%d}}};
  77. #format result {%t} {{$format}{$time}};
  78. #return {$result};
  79. };
  80. ///=== {
  81. // #@ time.Year [<时间戳>]
  82. // 将指定时间戳所在的年份,四位数字。
  83. // 时间戳如果省略则为当前系统时间。
  84. // };
  85. #func {time.Year} {
  86. #local time {@defaultNum{%1;@time.Now{}}};
  87. #local format {@default{%2;{%Y}}};
  88. #format result {%t} {{$format}{$time}};
  89. #return {$result};
  90. };
  91. ///=== {
  92. // #@ time.Month [<时间戳>]
  93. // 将指定时间戳所在的月份,两位数字。
  94. // 时间戳如果省略则为当前系统时间。
  95. // };
  96. #func {time.Month} {
  97. #local time {@defaultNum{%1;@time.Now{}}};
  98. #local format {@default{%2;{%m}}};
  99. #format result {%t} {{$format}{$time}};
  100. #return {$result};
  101. };
  102. ///=== {
  103. // #@ time.Day [<时间戳>]
  104. // 将指定时间戳所在的日期,两位数字。
  105. // 时间戳如果省略则为当前系统时间。
  106. // };
  107. #func {time.Day} {
  108. #local time {@defaultNum{%1;@time.Now{}}};
  109. #local format {@default{%2;{%d}}};
  110. #format result {%t} {{$format}{$time}};
  111. #return {$result};
  112. };
  113. ///=== {
  114. // #@ time.Time [<时间戳>]
  115. // 将指定时间戳转换成 HH:MM:SS 格式的时间字符串。
  116. // 时间戳如果省略则为当前系统时间。
  117. // };
  118. #func {time.Time} {
  119. #local time {@defaultNum{%1;@time.Now{}}};
  120. #local format {@default{%2;{%H:%M:%S}}};
  121. #format result {%t} {{$format}{$time}};
  122. #return {$result};
  123. };
  124. ///=== {
  125. // #@ time.Hour [<时间戳>]
  126. // 将指定时间戳所在时刻的小时值,24 小时制,两位数字。
  127. // 时间戳如果省略则为当前系统时间。
  128. // };
  129. #func {time.Hour} {
  130. #local time {@defaultNum{%1;@time.Now{}}};
  131. #local format {@default{%2;{%H}}};
  132. #format result {%t} {{$format}{$time}};
  133. #return {$result};
  134. };
  135. ///=== {
  136. // #@ time.Minute [<时间戳>]
  137. // 将指定时间戳所在时刻的分钟值,两位数字。
  138. // 时间戳如果省略则为当前系统时间。
  139. // };
  140. #func {time.Minute} {
  141. #local time {@defaultNum{%1;@time.Now{}}};
  142. #local format {@default{%2;{%M}}};
  143. #format result {%t} {{$format}{$time}};
  144. #return {$result};
  145. };
  146. ///=== {
  147. // #@ time.Second [<时间戳>]
  148. // 将指定时间戳所在时刻的秒值,两位数字。
  149. // 时间戳如果省略则为当前系统时间。
  150. // };
  151. #func {time.Second} {
  152. #local time {@defaultNum{%1;@time.Now{}}};
  153. #local format {@default{%2;{%S}}};
  154. #format result {%t} {{$format}{$time}};
  155. #return {$result};
  156. };