版博士V2.0程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

62 lines
1.6 KiB

  1. import { pipe } from './function';
  2. import * as O from './Ord';
  3. import * as N from './number';
  4. // -------------------------------------------------------------------------------------
  5. // instances
  6. // -------------------------------------------------------------------------------------
  7. /**
  8. * @category instances
  9. * @since 2.10.0
  10. */
  11. export var Eq = {
  12. equals: function (first, second) { return first.valueOf() === second.valueOf(); }
  13. };
  14. /**
  15. * @category instances
  16. * @since 2.6.0
  17. */
  18. export var eqDate = {
  19. equals: function (x, y) { return x.getDate() === y.getDate(); }
  20. };
  21. /**
  22. * @category instances
  23. * @since 2.6.0
  24. */
  25. export var eqMonth = {
  26. equals: function (x, y) { return x.getMonth() === y.getMonth(); }
  27. };
  28. /**
  29. * @category instances
  30. * @since 2.6.0
  31. */
  32. export var eqYear = {
  33. equals: function (x, y) { return x.getFullYear() === y.getFullYear(); }
  34. };
  35. /**
  36. * @example
  37. * import { Ord } from 'fp-ts/Date'
  38. *
  39. * assert.deepStrictEqual(Ord.compare(new Date(1, 1, 2020), new Date(1, 1, 2021)), -1)
  40. *
  41. * @category instances
  42. * @since 2.10.0
  43. */
  44. export var Ord = /*#__PURE__*/ pipe(N.Ord,
  45. /*#__PURE__*/ O.contramap(function (date) { return date.valueOf(); }));
  46. // -------------------------------------------------------------------------------------
  47. // utils
  48. // -------------------------------------------------------------------------------------
  49. /**
  50. * Returns the current `Date`
  51. *
  52. * @category constructors
  53. * @since 2.0.0
  54. */
  55. export var create = function () { return new Date(); };
  56. /**
  57. * Returns the number of milliseconds elapsed since January 1, 1970, 00:00:00 UTC
  58. *
  59. * @since 2.0.0
  60. */
  61. export var now = function () { return new Date().getTime(); };