nv-facutil-clock

1.0.13 • Public • Published

nv-facutil-clock

  • nv-facutil-clock simple date util
  • simplified version of jsnoz
  • Auto mode
  • Manual mode: stream/generator
  • simple Cron
  • without any dependancy
  • without README, uncompressd 8K

install

  • npm install nv-facutil-clock

usage

example

const {Auto,Manual,Cron} = require("nv-facutil-clock");

auto

var auto = new Auto()

> auto.zone
'+0800'
> auto.str()
'2021-03-05 23:55:04.322 +0800'
> auto.dict()
{
  y: 2021,
  m: 3,
  d: 5,
  h: 23,
  min: 55,
  s: 10,
  ms: 853,
  ts: 1614959710.853,
  mts: 1614959710853,
  zone: '+0800',
  soffset: 28800,
  msoffset: 28800000
}
> auto.sdict()
{
  y: '2021',
  m: '03',
  d: '05',
  h: '23',
  min: '55',
  s: '13',
  ms: '961',
  ts: 1614959713.961,
  mts: 1614959713961,
  zone: '+0800',
  soffset: 28800,
  msoffset: 28800000
}
>

manual

var manual = new Manual()

> manual
Manual [2021-03-05 23:57:06.937 +0800] {}
> manual
Manual [2021-03-05 23:57:06.937 +0800] {}
>
> manual.next_d()
'2021-03-06 23:57:06.937 +0800'
> manual
Manual [2021-03-06 23:57:06.937 +0800] {}
> manual.next_d()
'2021-03-07 23:57:06.937 +0800'
> manual
Manual [2021-03-07 23:57:06.937 +0800] {}
> manual.prev_d()
'2021-03-06 23:57:06.937 +0800'
> manual.prev_d()
'2021-03-05 23:57:06.937 +0800'
>

> manual.next_s()
'2021-03-05 23:57:07.937 +0800'
> manual
Manual [2021-03-05 23:57:07.937 +0800] {}
> manual.prev_s()
'2021-03-05 23:57:06.937 +0800'
> manual
Manual [2021-03-05 23:57:06.937 +0800] {}
>
> manual.prev_ms()
'2021-03-05 23:57:06.936 +0800'
>
> manual.prev_m()
'2021-02-05 23:57:06.936 +0800'
>
> manual.next_y()
'2022-02-05 23:57:06.936 +0800'
> manual.next_y()
'2023-02-05 23:57:06.936 +0800'
>

> manual.next_h(3)
'2023-02-06 02:57:06.936 +0800'
>

stream generator

var g = manual.nd_gen$$()
> g.next()
{ value: '2021-03-06 16:10:37.626 -0000', done: false }
> g.next()
{ value: '2021-03-07 16:10:37.626 -0000', done: false }
> g.next()
{ value: '2021-03-08 16:10:37.626 -0000', done: false }
> g.next()
{ value: '2021-03-09 16:10:37.626 -0000', done: false }
> g.next()
{ value: '2021-03-10 16:10:37.626 -0000', done: false }
> g.next()
{ value: '2021-03-11 16:10:37.626 -0000', done: false }
>

var g = manual.nd_gen$$(5)
> g.next()
{ value: '2021-03-16 16:10:37.626 -0000', done: false }
> g.next()
{ value: '2021-03-21 16:10:37.626 -0000', done: false }
> g.next()
{ value: '2021-03-26 16:10:37.626 -0000', done: false }
>

var g = manual.pd_gen$$(3)
> g.next()
{ value: '2021-03-23 16:10:37.626 -0000', done: false }
> g.next()
{ value: '2021-03-20 16:10:37.626 -0000', done: false }
> g.next()
{ value: '2021-03-17 16:10:37.626 -0000', done: false }
> g.next()
{ value: '2021-03-14 16:10:37.626 -0000', done: false }
> g.next()
{ value: '2021-03-11 16:10:37.626 -0000', done: false }
>

var c =0;
for(let each of manual) {
    if(c<10) {
        console.log(each)
    } else {

        break
    }
    c = c+1
}
/*
2021-03-11 16:13:38.322 -0000
2021-03-11 16:13:38.323 -0000
2021-03-11 16:13:38.324 -0000
2021-03-11 16:13:38.325 -0000
2021-03-11 16:13:38.326 -0000
2021-03-11 16:13:38.327 -0000
2021-03-11 16:13:38.328 -0000
2021-03-11 16:13:38.329 -0000
2021-03-11 16:13:38.330 -0000
2021-03-11 16:13:38.331 -0000

*/

Cron

const {Cron} = require("nv-facutil-clock")
var frequency =1000
function task_func(a,b,c) {
    console.log(a,b,c,(new Date()).getSeconds())
}
function cond_func(d) {
    /*
    d = {
      y: year,m: month,d: day,
      h: hour,min: minutes,s: seconds,ms: ms,
      ts: 1614959710.853,
      mts: 1614959710853,
    }
    */
    if(d.s % 7 === 0) {return(true)}
}

var cron = new Cron(frequency,cond_func,task_func,100,200,300)

> cron.launch()
undefined
> 100 200 300 56
100 200 300 0
100 200 300 7
100 200 300 14

()cron.clear100 200 300 21
undefined
> cron.clear()
undefined
>

stop watcher

    > var stop_watch = new StopWatch()
    undefined
    > stop_watch
    StopWatch [start_at:undefined  duration:undefined  end_at:undefined] {}
    >
    > var p = stop_watch.start()
    undefined
    > p
    Promise {
      <pending>,
      [Symbol(async_id_symbol)]: 68,
      [Symbol(trigger_async_id_symbol)]: 5,
      [Symbol(destroyed)]: { destroyed: false }
    }
    > stop_watch
    StopWatch [start_at:1639454327229  duration:7695  end_at:undefined] {}
    > stop_watch
    StopWatch [start_at:1639454327229  duration:9265  end_at:undefined] {}
    > stop_watch
    StopWatch [start_at:1639454327229  duration:10850  end_at:undefined] {}
    >
    > stop_watch
    StopWatch [start_at:1639454327229  duration:13856  end_at:undefined] {}
    > stop_watch.stop()
    { start_at: 1639454327229, end_at: 1639454350716, costed: 23487 }
    >
    > p
    Promise {
      { start_at: 1639454327229, end_at: 1639454350716, costed: 23487 },
      [Symbol(async_id_symbol)]: 68,
      [Symbol(trigger_async_id_symbol)]: 5,
      [Symbol(destroyed)]: { destroyed: false }
    }
    >  stop_watch
    StopWatch [start_at:1639454327229  duration:23487  end_at:1639454350716] {}
    >

METHODS

Auto

auto.dict                  auto.sdict
auto.str                   auto.zone

Manual

manual.dict                  manual.nd_gen$$              manual.next_d
manual.next_h                manual.next_m                manual.next_min              manual.next_ms
manual.next_s                manual.next_w                manual.next_y                manual.nh_gen$$
manual.nm_gen$$              manual.nmin_gen$$            manual.nms_gen$$             manual.ns_gen$$
manual.ny_gen$$              manual.pd_gen$$              manual.ph_gen$$              manual.pm_gen$$
manual.pmin_gen$$            manual.pms_gen$$             manual.prev_d                manual.prev_h
manual.prev_m                manual.prev_min              manual.prev_ms               manual.prev_s
manual.prev_w                manual.prev_y                manual.ps_gen$$              manual.py_gen$$
manual.sdict                 manual.str                   manual.zone

Cron

cron.clear                 cron.cond_func             cron.frequency             cron.is_running
cron.launch                cron.task_func             cron.zone

LICENSE

  • ISC

Dependents (20)

Package Sidebar

Install

npm i nv-facutil-clock

Weekly Downloads

2

Version

1.0.13

License

ISC

Unpacked Size

91.6 kB

Total Files

6

Last publish

Collaborators

  • ihgazni2