nadesiko3
Version:
Japanese Programming Language
116 lines (112 loc) • 8.56 kB
JavaScript
const TestEnv = require('./test_utils').TestEnv
describe('plugin_datetime_test', () => {
const env = new TestEnv()
before( function () {
env.getEnv()
})
const cmp = (code, res) => {
env.cmpInfo(code, res)
}
const cmpex = (code, exinfo) => {
env.cmpError(code, exinfo)
}
// --- test ---
it('日時', () => {
cmp('「2017/03/06」の曜日。それを表示', '月')
cmp('「2017/03/06」の曜日番号取得。それを表示', '1')
cmp('「2017/03/06 00:00:00」をUNIX時間変換して表示', '1488726000')
cmp('「2017/03/06 00:00:01」をUNIX時間変換して表示', '1488726001')
cmp('「2017/03/06 00:00:00」をUNIXTIME変換して表示', '1488726000')
cmp('「2017/03/06 00:00:01」をUNIXTIME変換して表示', '1488726001')
cmp('1488726000を日時変換して表示', '2017/03/06 00:00:00')
cmp('1504191600を日時変換して表示', '2017/09/01 00:00:00')
})
it('日時差', () => {
cmp('「2017/03/06」から「2018/03/06」までの年数差。それを表示', '1')
cmp('「2017/03/06」と「2018/03/06」の年数差。それを表示', '1')
cmp('「2018/03/06」から「2017/03/06」までの年数差。それを表示', '-1')
cmp('「2018/03/06」と「2017/03/06」の年数差。それを表示', '-1')
cmp('「2017/03/06」から「2017/04/06」までの月数差。それを表示', '1')
cmp('「2017/03/06」と「2017/04/06」の月数差。それを表示', '1')
cmp('「2017/04/06」から「2017/03/06」までの月数差。それを表示', '-1')
cmp('「2017/04/06」と「2017/03/06」の月数差。それを表示', '-1')
cmp('「2017/03/06」から「2017/04/06」までの日数差。それを表示', '31')
cmp('「2017/03/06」と「2017/04/06」の日数差。それを表示', '31')
cmp('「2017/04/06」から「2017/03/06」までの日数差。それを表示', '-31')
cmp('「2017/04/06」と「2017/03/06」の日数差。それを表示', '-31')
cmp('「2017/03/06 00:00:00」から「2017/03/06 12:00:00」までの時間差。それを表示', '12')
cmp('「2017/03/06 00:00:00」と「2017/03/06 12:00:00」の時間差。それを表示', '12')
cmp('「00:00:00」から「12:00:00」までの時間差。それを表示', '12')
cmp('「00:00:00」と「12:00:00」の時間差。それを表示', '12')
cmp('「2017/03/06 12:00:00」から「2017/03/06 00:00:00」までの時間差。それを表示', '-12')
cmp('「2017/03/06 12:00:00」と「2017/03/06 00:00:00」の時間差。それを表示', '-12')
cmp('「12:00:00」から「00:00:00」までの時間差。それを表示', '-12')
cmp('「12:00:00」と「00:00:00」の時間差。それを表示', '-12')
cmp('「2017/03/06 00:00:00」から「2017/03/06 00:59:00」までの分差。それを表示', '59')
cmp('「2017/03/06 00:00:00」と「2017/03/06 00:59:00」の分差。それを表示', '59')
cmp('「00:00:00」から「00:59:00」までの分差。それを表示', '59')
cmp('「00:00:00」と「00:59:00」の分差。それを表示', '59')
cmp('「2017/03/06 00:59:00」から「2017/03/06 00:00:00」までの分差。それを表示', '-59')
cmp('「2017/03/06 00:59:00」と「2017/03/06 00:00:00」の分差。それを表示', '-59')
cmp('「00:59:00」から「00:00:00」までの分差。それを表示', '-59')
cmp('「00:59:00」と「00:00:00」の分差。それを表示', '-59')
cmp('「2017/03/06 00:00:00」から「2017/03/06 00:00:59」までの秒差。それを表示', '59')
cmp('「2017/03/06 00:00:00」と「2017/03/06 00:00:59」の秒差。それを表示', '59')
cmp('「00:00:00」から「00:00:59」までの秒差。それを表示', '59')
cmp('「00:00:00」と「00:00:59」の秒差。それを表示', '59')
cmp('「2017/03/06 00:00:59」から「2017/03/06 00:00:00」までの秒差。それを表示', '-59')
cmp('「2017/03/06 00:00:59」と「2017/03/06 00:00:00」の秒差。それを表示', '-59')
cmp('「00:00:59」から「00:00:00」までの秒差。それを表示', '-59')
cmp('「00:00:59」と「00:00:00」の秒差。それを表示', '-59')
cmp('「2020/07/17 00:00:00」と「2020/07/18 00:00:00」の「時間」による日時差を表示', '24')
}).timeout(5000)
it('日時加算', () => {
cmp('「2017/03/06 00:00:01」に「+01:02:03」を時間加算。それを表示', '2017/03/06 01:02:04')
cmp('「00:00:01」に「+01:02:03」を時間加算。それを表示', '01:02:04')
cmp('「2017/03/06 00:00:01」に「-01:02:03」を時間加算。それを表示', '2017/03/05 22:57:58')
cmp('「00:00:01」に「-01:02:03」を時間加算。それを表示', '22:57:58')
cmp('「2017/03/06 00:00:01」に「+1年」を日時加算。それを表示', '2018/03/06 00:00:01')
cmp('「2017/03/06」に「+1年」を日時加算。それを表示', '2018/03/06')
cmp('「2017/03/06 00:00:01」に「+1ヶ月」を日時加算。それを表示', '2017/04/06 00:00:01')
cmp('「2017/03/06」に「+1ヶ月」を日時加算。それを表示', '2017/04/06')
cmp('「2017/03/06 00:00:01」に「+1日」を日時加算。それを表示', '2017/03/07 00:00:01')
cmp('「2017/03/06」に「+1日」を日時加算。それを表示', '2017/03/07')
cmp('「2017/03/06 00:00:01」に「+1時間」を日時加算。それを表示', '2017/03/06 01:00:01')
cmp('「00:00:01」に「+1時間」を日時加算。それを表示', '01:00:01')
cmp('「2017/03/06 00:00:01」に「+2分」を日時加算。それを表示', '2017/03/06 00:02:01')
cmp('「00:00:01」に「+2分」を日時加算。それを表示', '00:02:01')
cmp('「2017/03/06 00:00:01」に「+3秒」を日時加算。それを表示', '2017/03/06 00:00:04')
cmp('「00:00:01」に「+3秒」を日時加算。それを表示', '00:00:04')
cmp('「2017/03/06 00:00:01」に「-1年」を日時加算。それを表示', '2016/03/06 00:00:01')
cmp('「2017/03/06」に「-1年」を日時加算。それを表示', '2016/03/06')
cmp('「2017/03/06 00:00:01」に「-1ヶ月」を日時加算。それを表示', '2017/02/06 00:00:01')
cmp('「2017/03/06」に「-1ヶ月」を日時加算。それを表示', '2017/02/06')
cmp('「2017/03/06 00:00:01」に「-1日」を日時加算。それを表示', '2017/03/05 00:00:01')
cmp('「2017/03/06」に「-1日」を日時加算。それを表示', '2017/03/05')
cmp('「2017/03/06 00:00:01」に「-1時間」を日時加算。それを表示', '2017/03/05 23:00:01')
cmp('「00:00:01」に「-1時間」を日時加算。それを表示', '23:00:01')
cmp('「2017/03/06 00:00:01」に「-2分」を日時加算。それを表示', '2017/03/05 23:58:01')
cmp('「00:00:01」に「-2分」を日時加算。それを表示', '23:58:01')
cmp('「2017/03/06 00:00:01」に「-3秒」を日時加算。それを表示', '2017/03/05 23:59:58')
cmp('「00:00:01」に「-3秒」を日時加算。それを表示', '23:59:58')
cmp('「2017/03/06 00:00:01」に「+0001/02/03」を日付加算。それを表示', '2018/05/09 00:00:01')
cmp('「2017/03/06」に「+0001/02/03」を日付加算。それを表示', '2018/05/09')
cmp('「2017/03/06 00:00:01」に「-0001/02/03」を日付加算。それを表示', '2016/01/03 00:00:01')
cmp('「2017/03/06」に「-0001/02/03」を日付加算。それを表示', '2016/01/03')
}).timeout(5000)
it('元号データ, 和暦変換', () => {
cmpex(
'「1868/10/22」を和暦変換。それを表示',
{name: 'Error', message: /『和暦変換』は明治以前の日付には対応していません。/ }
)
cmp('「1868/10/23」を和暦変換。それを表示', '明治元/10/23')
cmp('「1912/07/29」を和暦変換。それを表示', '明治45/07/29')
cmp('「1912/07/30」を和暦変換。それを表示', '大正元/07/30')
cmp('「1926/12/24」を和暦変換。それを表示', '大正15/12/24')
cmp('「1926/12/25」を和暦変換。それを表示', '昭和元/12/25')
cmp('「1989/01/07」を和暦変換。それを表示', '昭和64/01/07')
cmp('「1989/01/08」を和暦変換。それを表示', '平成元/01/08')
cmp('「2019/04/30」を和暦変換。それを表示', '平成31/04/30')
cmp('「2019/05/01」を和暦変換。それを表示', '令和元/05/01')
})
})