User:Devon McCormick/DateTime

From J Wiki
Jump to navigation Jump to search

Here are my personal date and time functions.

The descriptions of the functions and variables in the attached file are as follows:

NB.* moAbbrevs: 3-letter (English) month abbreviations
NB.* baseDPM: base # of days per month (Feb->28)
NB.* weekDayAbbrevs: 3-letter (English) weekday abbreviations
NB.* cvtTS21Num: convert J (or APL) timestamp to YYYYMMDD.(day fraction).
NB.* cvtTmAPMil: convert [h]h:mm[ap] timestamp to hh:mm:00 format.
NB.* calendar: return text calendar for Year-Month YM (in form YYYYMM).
NB.* fmtHMS: format hours, minutes, seconds as string given 3 numbers.
NB.* elapsedTimeMsg: show time elapsed given starting qai=: 6!:1 ''.
NB.* isLaterThan: given timestamp is (1) later than now or not (0).
NB.* DateTimeCvt: Convert between DOS-style time (YYYYMMDD hh:mm[a|p]) & dayfraction.
NB.* DOSTime2DayFrac: DOS date & time MM/DD/YYYY hh:mm[a|p] -> YYYYMMDD.day-fraction.
NB.* monthAdd: add y months to x date YYYYMMDD.
NB.* DateAdd: limited mimic of VB DateAdd - DateAdd <unit to add>;date;num
NB.* waitUntil: wait until time y in [abbreviated] TS form: YYYY MM DD [[hh] [[mm] [[ss]]]]
NB.* adt2sqldt: MS Access date time 'M/D/Y h:m:s'->#M/D/Y#
NB.* yy2yyyy: 2-digit to 4-digit year; <:50 is pivot.
NB.* cvtIfDate2Num: assuming slash means [m]m/[d]d/[yy]yy date, convert to YYYYMMDD.
NB.* calcEOMdates: calculate End-Of-Month dates starting in year 0{y for
NB.* cvtAT: convert vector of timestamps from MSAccess DB to numeric date YYYYMMDD.
NB.* JDCNV: Julian day conversion from http://www.astro.washington.edu/deutsch-bin/getpro/library01.html?JDCNV
NB.* TSDiff: timestamp difference - return difference between 2 timestamps
NB.* TSAdd: add 2 timestamps - return sum of 2 timestamps
NB.* cvtDateTime2numDt: convert multiple (e.g. MS Access) char date-times, e.g.
NB.* dow: Day-of-week for year month day: 0=Sunday
NB.* toJulian: convert YYYYMMDD date to Julian day number.
NB.* toGregorian: convert Julian day numbers to dates in form YYYYMMDD
NB.* cvtY4M2D22YMD: "2002-06-11" -> 20020611 (numeric)
NB.* cvtMDY2Y4M2D2: convert char [m]m/[d]d/[yy]yy -> yyyymmdd (numeric);
NB.* cvtY4M2D22MDY: convert yyyymmdd (numeric) -> [m]m/[d]d/yyyy (char)