etime.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package etime
  2. import (
  3. "time"
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/alias"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
  6. mKt "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes"
  7. )
  8. // ETime -- метка времени.
  9. // Вывод: "2006-01-02 15:04:05.000 -07 MST".
  10. type ETime struct {
  11. val alias.ATime
  12. isMut bool // Мутабельность
  13. isFill bool // Признак заполнения
  14. }
  15. // NewETime -- создает новый экземпляр ETime.
  16. func NewETime(val alias.ATime) mKt.ITime {
  17. helpers.Hassert(val != "", "NewETime(): val is empty")
  18. sf := &ETime{
  19. val: val,
  20. isFill: true,
  21. }
  22. return sf
  23. }
  24. // NewETimeAuto -- создаёт фиксированную авто-метку времени.
  25. func NewETimeAuto() mKt.ITime {
  26. sf := &ETime{
  27. isFill: true,
  28. }
  29. val := time.Now().Local().Format("2006-01-02 15:04:05.000 -07 MST")
  30. sf.Set(alias.ATime(val))
  31. return sf
  32. }
  33. // NewETimeAutoMut -- создаёт изменяемую авто-метку времени.
  34. func NewETimeAutoMut() mKt.ITimeMut {
  35. sf := &ETime{
  36. isFill: true,
  37. isMut: true,
  38. }
  39. val := time.Now().Local().Format("2006-01-02 15:04:05.000 -07 MST")
  40. sf.Set(alias.ATime(val))
  41. return sf
  42. }
  43. // String -- возвращает строку.
  44. func (sf *ETime) String() string {
  45. helpers.Hassert(sf.val != "", "ETime.String(): значение не инициализировано")
  46. return string(sf.val)
  47. }
  48. // Get -- возвращает строку.
  49. func (sf *ETime) Get() alias.ATime {
  50. helpers.Hassert(sf.val != "", "ETime.Get(): значение не инициализировано")
  51. return sf.val
  52. }
  53. // Set -- устанавливает значение.
  54. func (sf *ETime) Set(val alias.ATime) {
  55. helpers.Hassert(sf.isMut, "ETime.Set(): значение фиксировано")
  56. helpers.Hassert(val != "", "ETime.Set(): val is empty")
  57. sf.val = val
  58. }