8.23. diff 期間¶
書式1: diffyear(date_1,date_2)
書式2: diffyear(time_1,time_2)
書式3: diffmonth(date_1,date_2)
書式4: diffmonth(time_1,time_2)
書式5: diffday(date_1,date_2)
書式6: diffday(time_1,time_2)
書式7: diffhour(time_1,time_2)
書式8: diffminute(time_1,time_2)
書式9: diffsecond(time_1,time_2)
書式10: diffusecond(time_1,time_2)
二つの引数が日付型の場合、 \(date_1\) と \(date_2\) の差( \(date_1-date_2\) )を計算し、 その年数(difyear)、月数(diffmonth)、日数(diffday)で計算する。 二つの引数が時刻型の場合、 \(time_1\) と \(time_2\) の差( \(time_1-time_2\) )を計算し、 その年数(difyear)、月数(diffmonth)、日数(diffday)、 時間数(diffhour)、分数(diffminute)、秒数(diffsecond)、マイクロ秒数(diffusecond)で計算する。 端数は切り捨てられる。
利用例¶
importと入力データ(CSV)の準備
1import nysol.mcmd as nm 2 3with open('dat1.csv','w') as f: 4 f.write( 5'''id,date 61,19641010 72,20000101 83,20130831 94,20130901 105,20130902 11''') 12 13with open('dat2.csv','w') as f: 14 f.write( 15'''id,time 161,20120101000000 172,20120101011112 183, 194,20111231235000 205,20111231235000.123456 21''')
月単位での期間
date
項目から2013年9月1日までの経過期間を日数で計算する。
1nm.mcal(c='diffday(0d20130901,$d{date})', a='rsl', i="dat1.csv", o="rsl1.csv").run() 2### rsl1.csv の内容 3# id,date,rsl 4# 1,19641010,17858 5# 2,20000101,4992 6# 3,20130831,1 7# 4,20130901,0 8# 5,20130902,-1
分単位での期間
time
項目から2012年1月1日 00時00分00秒までの経過期間を分単位で計算する。
1nm.mcal(c='diffmonth(0t20120101000000,$t{time})', a='rsl', i="dat2.csv", o="rsl2.csv").run() 2### rsl2.csv の内容 3# id,time,rsl 4# 1,20120101000000,0 5# 2,20120101011112,-1 6# 3,, 7# 4,20111231235000,0 8# 5,20111231235000.123456,0
マイクロ秒単位での期間
time
項目から2012年1月1日 00時00分00秒までの経過期間を秒単位およびマイクロ秒単位で計算する。
1nm.mcal(c='diffsecond(0t20120101000000,$t{time})', a='rsl', i="dat2.csv", o="rsl3.csv").run() 2nm.mcal(c='diffusecond(0t20120101000000,$t{time})', a='rsl', i="dat2.csv", o="rsl4.csv").run() 3### rsl3.csv の内容 4# id,time,rsl 5# 1,20120101000000,0 6# 2,20120101011112,-4272 7# 3,, 8# 4,20111231235000,600 9# 5,20111231235000.123456,599