1.0.7 • Published 3 years ago

@hedgineering/time-counter v1.0.7

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

Timer Counter

A simple counter library that can increment and decrement hours, minutes, and seconds. This library can generate both standard and military time representations.

All the functionality is protected and cannot be tampered with by end users through the api.

Even though JavaScript does not natively support private variables (at least not in a manner that has universal browser / environment support), some clever object prototyping was utilized to hide and protect internal functional variables from users (you can see the Counter.js source code for details).

You can view a simple showcase of this live at https://hedgineering-timer-counter.netlify.app/

Note: If you download the release with the showcase as part of the source code, it may have issues running on your local machine if running directly out of your file system because of CORS web policy. It needs to be run on a server of some sort, which is why I deployed it on Netlify for your viewing pleasure.

Acknowledgements

This counter was made to the specification of the Maxeta Technologies Intern Project as a part of my application to their Software Engineering Internship Program for Summer 2022.

Thank you Mr. Chad Reed and Ms. Pamela Putnam from Maxeta Technologies for the opportunity to compete for your internship position!

Author: Rahul Hegde

Installation

Quick and Easy: Install my-project with npm!

Assuming you have node installed, simply open up your terminal / command prompt in your project root directory and run this command:

  npm i @hedgineering/time-counter

Then, you can simply import the counter and use it like any other object:

const Counter = require('@hedgineering/time-counter')

const counter = new Counter()

console.log(counter.getTime())
console.log(counter.getMilitaryTime())

API Reference

Create A Default Counter - 00:00:00 AM or 00:00:00 (military)

  let counter = new Counter()

Create A Counter Set To A Time - HH:MM:SS AM/PM or HH:MM:SS (military)

  // all of these are equivalent to 05:30:25 AM or 05:30:25 (military)

  let counterA = new Counter(5, 30, 25) // AM by default
  let counterB = new Counter(5, 30, 25, 'am') 
  let counterC = new Counter(5, 30, 25, 'AM')

  // both of these are equivalent to 05:30:25 PM or 17:30:25 (military)

  let counterD = new Counter(5, 30, 25, 'pm') 
  let counterE = new Counter(5, 30, 25, 'PM')

  // meridian is ignored when military is true, this is 22:30:25 or 10:30:25 PM

  let counterF = new Counter(22,30,25, '', true)
ParameterTypeDescription
hournumberRequired. Current Hour for the Counter, 0 by default loops back from 23 to 0 if military is true, otherwise from 12 to 1
minutenumberRequired. Current Minute for the Counter, 0 by default
secondnumberRequired. Current Second for the Counter, 0 by default
meridianstringOptional. AM or PM or am or pm; Current Meridian for the Counter, 'AM' by default
militarybooleanOptional. If this is true, the initializer parameters are considered to be input in military time, and the meridian parameter is disregarded, otherwise input parameters are considered to be in standard time and converted to military time for internal calculation

Get Time in Standard Format HH:MM:SS AM/PM (12 hour clock)

  counterA.getTime() // returns '05:30:25 AM'

Get Time in Military Format HH:MM:SS (24 hour clock)

  counterD.getMilitaryTime() // returns '17:30:25'

Increment / Decrement Time

  // default behavior: increments or decrements by 1 second 

  counterA.increment() // 05:30:26 AM
  counterA.decrement() // 05:30:25 AM

  // optionally specify what unit to increment or decrement

  counterA.increment('h') // 06:30:25 AM
  counterA.increment('m') // 06:31:25 AM
  counterA.increment('s') // 06:31:26 AM

  counterA.decrement('h') // 05:30:25 AM
  counterA.decrement('m') // 05:30:25 AM
  counterA.decrement('s') // 05:30:25 AM
ParameterTypeDescription
targetstringOptional. h, m, or s ; the logical boundary target to increment or decrement
1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago