time.tin 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  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} {#format result {%T}};
  15. ///=== {
  16. // #@ time.ParseDoC <时间长度文本>
  17. // 将中文书写的时间长度(Duration of Chinese)文本转换成以秒为单位的整数值。
  18. // };
  19. #func {time.ParseDoC} {
  20. #local {timeStr} {%0};
  21. #nop 兼容不同的写法;
  22. #replace {timeStr} {个} {};
  23. #replace {timeStr} {星期} {周};
  24. #replace {timeStr} {小时} {时};
  25. #replace {timeStr} {分钟} {分};
  26. #nop 注意这里用了个小技巧,末尾的空格不要去掉;
  27. #replace timeStr {%S年} {@math.ParseCN{&1}*31104000+ };
  28. #replace timeStr {%S月} {@math.ParseCN{&1}*2592000+ };
  29. #replace timeStr {%S周} {@math.ParseCN{&1}*604800+ };
  30. #replace timeStr {%S天} {@math.ParseCN{&1}*86400+ };
  31. #replace timeStr {%S时} {@math.ParseCN{&1}*3600+ };
  32. #replace timeStr {%S分} {@math.ParseCN{&1}*60+ };
  33. #replace timeStr {%S秒} {@math.ParseCN{&1}};
  34. #local time {};
  35. #math time {$timeStr + 0};
  36. #return {$time};
  37. };
  38. ///=== {
  39. // #@ time.Format [<时间戳> [<格式字符串>]]
  40. // 将指定时间戳按照格式字符串要求,转换成字符串。
  41. // 格式字符串参见 #help time,如果省略则为 %Y-%m-%d %H:%M:%S。
  42. // 时间戳如果省略则为当前系统时间。
  43. // };
  44. #func {time.Format} {
  45. #local time {@defaultNum{%1;@time.Now{}}};
  46. #local format {@default{%2;{%Y-%m-%d %H:%M:%S}}};
  47. #format result {%t} {{$format}{$time}};
  48. #return {$result};
  49. };
  50. ///=== {
  51. // #@ time.FormatNow [<格式字符串>]]
  52. // 将指定时间戳按照格式字符串要求,转换成字符串。
  53. // 格式字符串参见 #help time,如果省略则为 %Y-%m-%d %H:%M:%S。
  54. // };
  55. #func {time.FormatNow} {
  56. #local time {@time.Now{}};
  57. #local format {@default{%1;{%Y-%m-%d %H:%M:%S}}};
  58. #format result {%t} {{$format}{$time}};
  59. #return {$result};
  60. };
  61. ///=== {
  62. // #@ time.Date [<时间戳>]
  63. // 将指定时间戳转换成 YYYY-mm-dd 格式的日期字符串。
  64. // 时间戳如果省略则为当前系统时间。
  65. // };
  66. #func {time.Date} {
  67. #local time {@defaultNum{%1;@time.Now{}}};
  68. #local format {@default{%2;{%Y-%m-%d}}};
  69. #format result {%t} {{$format}{$time}};
  70. #return {$result};
  71. };
  72. ///=== {
  73. // #@ time.Year [<时间戳>]
  74. // 将指定时间戳所在的年份,四位数字。
  75. // 时间戳如果省略则为当前系统时间。
  76. // };
  77. #func {time.Year} {
  78. #local time {@defaultNum{%1;@time.Now{}}};
  79. #local format {@default{%2;{%Y}}};
  80. #format result {%t} {{$format}{$time}};
  81. #return {$result};
  82. };
  83. ///=== {
  84. // #@ time.Month [<时间戳>]
  85. // 将指定时间戳所在的月份,两位数字。
  86. // 时间戳如果省略则为当前系统时间。
  87. // };
  88. #func {time.Month} {
  89. #local time {@defaultNum{%1;@time.Now{}}};
  90. #local format {@default{%2;{%m}}};
  91. #format result {%t} {{$format}{$time}};
  92. #return {$result};
  93. };
  94. ///=== {
  95. // #@ time.Day [<时间戳>]
  96. // 将指定时间戳所在的日期,两位数字。
  97. // 时间戳如果省略则为当前系统时间。
  98. // };
  99. #func {time.Day} {
  100. #local time {@defaultNum{%1;@time.Now{}}};
  101. #local format {@default{%2;{%d}}};
  102. #format result {%t} {{$format}{$time}};
  103. #return {$result};
  104. };
  105. ///=== {
  106. // #@ time.Time [<时间戳>]
  107. // 将指定时间戳转换成 HH:MM:SS 格式的时间字符串。
  108. // 时间戳如果省略则为当前系统时间。
  109. // };
  110. #func {time.Time} {
  111. #local time {@defaultNum{%1;@time.Now{}}};
  112. #local format {@default{%2;{%H:%M:%S}}};
  113. #format result {%t} {{$format}{$time}};
  114. #return {$result};
  115. };
  116. ///=== {
  117. // #@ time.Hour [<时间戳>]
  118. // 将指定时间戳所在时刻的小时值,24 小时制,两位数字。
  119. // 时间戳如果省略则为当前系统时间。
  120. // };
  121. #func {time.Hour} {
  122. #local time {@defaultNum{%1;@time.Now{}}};
  123. #local format {@default{%2;{%H}}};
  124. #format result {%t} {{$format}{$time}};
  125. #return {$result};
  126. };
  127. ///=== {
  128. // #@ time.Minute [<时间戳>]
  129. // 将指定时间戳所在时刻的分钟值,两位数字。
  130. // 时间戳如果省略则为当前系统时间。
  131. // };
  132. #func {time.Minute} {
  133. #local time {@defaultNum{%1;@time.Now{}}};
  134. #local format {@default{%2;{%M}}};
  135. #format result {%t} {{$format}{$time}};
  136. #return {$result};
  137. };
  138. ///=== {
  139. // #@ time.Second [<时间戳>]
  140. // 将指定时间戳所在时刻的秒值,两位数字。
  141. // 时间戳如果省略则为当前系统时间。
  142. // };
  143. #func {time.Second} {
  144. #local time {@defaultNum{%1;@time.Now{}}};
  145. #local format {@default{%2;{%S}}};
  146. #format result {%t} {{$format}{$time}};
  147. #return {$result};
  148. };