date and time strings cannot be read correctly in SAS - date
I have the following sample data to read into SAS
2012-05-0317:36:00NYA
2012-05-0410:29:00SNW
2012-05-2418:45:00NYA
2012-05-2922:24:00NSL
2012-05-3107:26:00DEN
2012-05-2606:10:00PHX
2012-05-0202:30:00FTW
2012-05-0220:45:00HOB
2012-05-0103:01:00HGR
2012-05-0120:30:00RCH
2012-05-1112:00:00NAS
However, there is a strange problem bothering me.
Here is my first try.
data test;
informat DT yymmdd10.
TM $TIME8.
orig $3.
;
format DT yymmddd10.
TM TIME8.
orig $3.
;
input
#1 DT_temp
#11 TM_temp
#19 orig
;
datalines;
2012-05-0317:36:00NYA
2012-05-0410:29:00SNW
2012-05-2418:45:00NYA
2012-05-2922:24:00NSL
2012-05-3107:26:00DEN
2012-05-2606:10:00PHX
2012-05-0202:30:00FTW
2012-05-0220:45:00HOB
2012-05-0103:01:00HGR
2012-05-0120:30:00RCH
2012-05-1112:00:00NAS
run;
The result shows
DT TM orig
. . NYA
. . SNW
. . NYA
. . NSL
. . DEN
. . PHX
. . FTW
. . HOB
. . HGR
. . RCH
. . NAS
This means the date and time are not read correctly. A work around I have right now is to read everything as string first and then convert it to date and time respectively.
data test;
informat DT_temp $10.
TM_temp $8.
orig $3.
;
format DT yymmddd10.
TM TIME8.
orig $3.
;
input
#1 DT_temp
#11 TM_temp
#19 orig
;
DT=input(strip(DT_temp),yymmdd10.);
TM=input(strip(TM_temp),time8.);
drop DT_temp TM_temp;
datalines;
2012-05-0317:36:00NYA
2012-05-0410:29:00SNW
2012-05-2418:45:00NYA
2012-05-2922:24:00NSL
2012-05-3107:26:00DEN
2012-05-2606:10:00PHX
2012-05-0202:30:00FTW
2012-05-0220:45:00HOB
2012-05-0103:01:00HGR
2012-05-0120:30:00RCH
2012-05-1112:00:00NAS
run;
In this way, everything gets the correct format.
orig DT TM
NYA 2012-05-03 17:36:00
SNW 2012-05-04 10:29:00
NYA 2012-05-24 18:45:00
NSL 2012-05-29 22:24:00
DEN 2012-05-31 7:26:00
PHX 2012-05-26 6:10:00
FTW 2012-05-02 2:30:00
HOB 2012-05-02 20:45:00
HGR 2012-05-01 3:01:00
RCH 2012-05-01 20:30:00
NAS 2012-05-11 12:00:00
Basically, these two methods used the same informat. I was wondering why the first method does not work. Appreciate for any kind of help. Thank you very much.
Your "first try" code has a couple errors, but I'm guessing they were introduced while writing the question.
Because you are using column-oriented input, you need to specify the format to be used for each variable. Here is a corrected version:
data test;
informat DT yymmdd10.
TM TIME8.
orig $3.
;
format DT yymmddd10.
TM TIME8.
orig $3.
;
input
#1 DT yymmdd10.
#11 TM TIME8.
#19 orig $3.
;
datalines;
2012-05-0317:36:00NYA
2012-05-0410:29:00SNW
2012-05-2418:45:00NYA
2012-05-2922:24:00NSL
2012-05-3107:26:00DEN
2012-05-2606:10:00PHX
2012-05-0202:30:00FTW
2012-05-0220:45:00HOB
2012-05-0103:01:00HGR
2012-05-0120:30:00RCH
2012-05-1112:00:00NAS
run;
Related
Using Conditionals and Time & Date in Assembly Language
I'm new with assembly language (8086 Program) and I am trying to create a program that display a greeting depending on system date and time. Like if the system date is December 25 then the program will print "Merry Christmas" or if January 1 then it's "Happy New Year". If it just a regular day / no holiday then just print a "Good day". On system time, probably display a "Good Evening" or "Good Morning". So far, I learned how to get and display the system time and date. Now, I am wondering how can I apply conditionals (if-else) on it.
Assuming you've asked the date from DOS using function 2Bh, the day will be in DL and the month in DH. Checking for Christmas day is simply writing cmp dx, 0C19h. Get inspired by next example: mov si, Xmas cmp dx, 0C19h ; 25 dec je GoPrint mov si, NewY cmp dx, 0101h ; 01 jan je GoPrint ... GoPrint: mov dx, si mov ah, 09h ; DOS.PrintString int 21h ... Xmas: db 'Merry ...', 13, 10, '$' NewY: db 'Happy ...', 13, 10, '$' For 'Good day' vs 'Good evening', you can apply similar code to the time (hours) in the CH register that you get from invoking the DOS function 2Ch.
Convert weekly dates to monthly week data using Stata
I have a %tw date format variable in Stata. I want to generate a monthly week variable. Like in the example below, the variable Date2 has 1999w14 now I want to generate 1999mayw1 in Stata. How can I approach this Date2 date2 1999w14 1999mayw1 1999w14 1999mayw1 1999w14 1999mayw1 1999w14 1999mayw1 1999w14 1999mayw1 1999w14 1999mayw1 1999w14 1999mayw1 1999w14 1999mayw1 1999w15 1999mayw2 1999w15 1999mayw2 1999w15 1999mayw2 1999w15 1999mayw2 1999w15 1999mayw2 1999w15 1999mayw2 1999w15 1999mayw2
Stata has no concept of the first week in a given month. How could it? Weeks don't map neatly on to months, or even vice versa, unless you are talking about February in non-leap years which has exactly 4 weeks, but starting on different days in different years. If you have some particular concept of a week, e.g. that it starts on Monday, then tell us what it is. Stata week 1 always starts on 1 January, 2 on 8 January, and so forth, and week 52 always has either 8 or 9 days. If your data match those definitions, fine. Otherwise you may need to do some reading to work out what matches your problem. If you issue the command below in Stata, you will get clickable links to .pdf versions. . search week, sj Search of official help files, FAQs, Examples, SJs, and STBs SJ-12-4 dm0065_1 . . . . . Stata tip 111: More on working with weeks, erratum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox Q4/12 SJ 12(4):765 (no commands) lists previously omitted key reference SJ-12-3 dm0065 . . . . . . . . . . Stata tip 111: More on working with weeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox Q3/12 SJ 12(3):565--569 (no commands) discusses how to convert data presented in yearly and weekly form to daily dates and how to aggregate such data to months or longer intervals SJ-10-4 dm0052 . . . . . . . . . . . . . . . . Stata tip 68: Week assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . N. J. Cox Q4/10 SJ 10(4):682--685 (no commands) tip on Stata's solution for weeks and on how to set up your own alternatives given different definitions of the week That said, if you're content to take your data as Stata weeks, you can convert to months and label as you wish. This script requires that you download labmask from the Stata Journal site (start with search labmask, sj). clear set obs 10 gen wdate = yw(1999, _n) format wdate %tw list gen mdate = mofd(dofw(wdate)) format mdate %tm bysort mdate (wdate) : gen week = _n gen label = string(mdate, "%tm") + "w" + string(week) clonevar wdate2 = wdate * install from Stata Journal site after -search labmask- labmask wdate2, values(label) list, sepby(mdate) +-----------------------------------------------+ | wdate mdate week label wdate2 | |-----------------------------------------------| 1. | 1999w1 1999m1 1 1999m1w1 1999m1w1 | 2. | 1999w2 1999m1 2 1999m1w2 1999m1w2 | 3. | 1999w3 1999m1 3 1999m1w3 1999m1w3 | 4. | 1999w4 1999m1 4 1999m1w4 1999m1w4 | 5. | 1999w5 1999m1 5 1999m1w5 1999m1w5 | |-----------------------------------------------| 6. | 1999w6 1999m2 1 1999m2w1 1999m2w1 | 7. | 1999w7 1999m2 2 1999m2w2 1999m2w2 | 8. | 1999w8 1999m2 3 1999m2w3 1999m2w3 | 9. | 1999w9 1999m2 4 1999m2w4 1999m2w4 | |-----------------------------------------------| 10. | 1999w10 1999m3 1 1999m3w1 1999m3w1 | +-----------------------------------------------+
How to adjust a variable via dividing it by the sum of observations in previous days?
I want to write a code to run the formula which is shown below: Adjusted volume for each name and date = IntradayVolume / ( dailyvolume for five last days) And I use codes which are shown below: *Division for calculating adjusted volume; proc sort data=sampledata_sumvolso02 out=sampledata_sumvolso02; by TRD_STCK_CD TRD_EVENT_DT; run; *Adjusted intraday volume for days of a week; data sampledata_adjvol02; do until(last.TRD_STCK_CD); do until(last.TRD_EVENT_DT); set sampledata_sumvolso02; by TRD_STCK_CD TRD_EVENT_DT; if first.TRD_STCK_CD then n=0; if first.TRD_EVENT_DT then n+1; if n>7 then do; if not missing(IntradayVolume) then adjusted_volume=divide(IntradayVolume,temp); else call missing(adjusted_volume); end; if last.TRD_EVENT_DT then temp=dailyvolume; output; end; end; drop temp n; run; Here is a sample of my data: data WORK.SAMPLEDATA_SUMVOLSO02; infile datalines dsd truncover; input TRD_STCK_CD:$15. TRD_PR:32. TRD_TUROVR:14. TRD_EVENT_DT:DATE9. TRD_EVENT_TM:TIME5. TRD_EVENT_ROUNDED:32. TRD_EVENT_ROUFOR:$5. CountedVOLUME:32. DailyVolume:32. IntradayVolume:32.; format TRD_TUROVR 14. TRD_EVENT_DT DATE9. TRD_EVENT_TM TIME5.; label TRD_STCK_CD="TRD_STCK_CD" TRD_PR="TRD_PR" TRD_TUROVR="TRD_TUROVR" TRD_EVENT_DT="TRD_EVENT_DT"; datalines4; BALI1,850,9260,24MAR2008,9:14,34200,9:30,7871000,, BALI1,850,2000,23MAR2008,9:15,34200,9:30,1700000,, BALI1,850,10000,22MAR2008,9:15,34200,9:30,8500000,, BALI1,850,6000,21MAR2008,9:15,34200,9:30,5100000,, BALI1,850,10000,20MAR2008,9:29,34200,9:30,8500000,31671000,31671000 BANK1,1164,10729,20MAR2008,9:38,36000,10:00,12488556,,12488556 BANK1,1148,2000,21MAR2008,11:24,41400,11:30,2296000,, BANK1,1147,1575,22MAR2008,11:24,41400,11:30,1806525,16591081,4102525 BHMN1,1013,1500,14MAR2008,9:00,34200,9:30,1519500,, BHMN1,1013,1500,15MAR2008,9:00,34200,9:30,1519500,, BHMN1,1013,1500,16MAR2008,9:00,34200,9:30,1519500,, BHMN1,1013,1500,17MAR2008,9:00,34200,9:30,1519500,, BHMN1,1013,1500,18MAR2008,9:00,34200,9:30,1519500,, BHMN1,1013,1500,19MAR2008,9:00,34200,9:30,1519500,, BHMN1,1013,1000,20MAR2008,9:00,34200,9:30,1013000,, BHMN1,1013,450,21MAR2008,9:00,34200,9:30,455850,, BHMN1,1013,1500,22MAR2008,9:00,34200,9:30,1519500,, BHMN1,1013,1500,23MAR2008,9:00,34200,9:30,1519500,, BHMN1,1013,1500,24MAR2008,9:04,34200,9:30,1519500,, BHMN1,1013,1500,25MAR2008,9:04,34200,9:30,1519500,, BHMN1,1013,601,26MAR2008,9:05,34200,9:30,608813,, BHMN1,1013,697,27MAR2008,9:06,34200,9:30,706061,, BHMN1,1013,1500,28MAR2008,9:08,34200,9:30,1519500,, BHMN1,1013,1500,29MAR2008,9:08,34200,9:30,1519500,, BHMN1,1013,1500,12MAR2008,9:09,34200,9:30,1519500,, BHMN1,1013,1500,13MAR2008,9:16,34200,9:30,1519500,, BHMN1,1013,1500,14MAR2008,9:22,34200,9:30,1519500,,25576224 BHMN1,1013,1500,15MAR2008,9:41,36000,10:00,1519500,,1519500 BHMN1,1013,1500,16MAR2008,10:13,37800,10:30,1519500,, BHMN1,1013,1500,17MAR2008,10:13,37800,10:30,1519500,,3039000 BHMN1,1013,1500,18MAR2008,11:25,41400,11:30,1519500,,1519500 BHMN1,1013,1500,19MAR2008,11:51,43200,12:00,1519500,33173724,1519500 CHML1,12000,745,20MAR2008,9:00,34200,9:30,8940000,, CHML1,12000,82,21MAR2008,9:00,34200,9:30,984000,, CHML1,11998,206,22MAR2008,9:07,34200,9:30,2471588,, CHML1,11998,414,23MAR2008,9:09,34200,9:30,4967172,, CHML1,11998,348,24MAR2008,9:12,34200,9:30,4175304,, CHML1,11996,82,25MAR2008,9:15,34200,9:30,983672,, CHML1,11996,1240,26MAR2008,9:16,34200,9:30,14875040,, CHML1,11996,414,27MAR2008,9:17,34200,9:30,4966344,, CHML1,11970,1000,28MAR2008,9:21,34200,9:30,11970000,, CHML1,11964,158,29MAR2008,9:22,34200,9:30,1890312,, CHML1,11990,1946,20MAR2008,9:23,34200,9:30,23332540,,79555972 CHML1,11851,500,19MAR2008,10:42,39600,11:00,5925500,, CHML1,11852,1054,18MAR2008,10:44,39600,11:00,12492008,, CHML1,11900,2000,17MAR2008,10:56,39600,11:00,23800000,,42217508 CHML1,11913,244,16MAR2008,11:08,41400,11:30,2906772,, CHML1,11913,56,15MAR2008,11:09,41400,11:30,667128,, CHML1,11968,944,14MAR2008,11:13,41400,11:30,11297792,, CHML1,11968,2056,13MAR2008,11:27,41400,11:30,24606208,, CHML1,11987,380,14MAR2008,11:29,41400,11:30,4555060,,44032960 CHML1,11988,620,11MAR2008,11:30,43200,12:00,7432560,, CHML1,11981,1663,12MAR2008,11:52,43200,12:00,19924403,, CHML1,11981,765,24MAR2008,11:52,43200,12:00,9165465,202328868,36522428 CRBN1,1486,1700,22MAR2008,9:00,34200,9:30,2526200,, CRBN1,1485,3353,24MAR2008,9:21,34200,9:30,4979205,7505405,7505405 DADE1,1685,2972,24MAR2008,10:04,37800,10:30,5007820,,5007820 DADE1,1632,2000,20MAR2008,11:49,43200,12:00,3264000,, DADE1,1631,5000,21MAR2008,11:49,43200,12:00,8155000,, DADE1,1630,3000,22MAR2008,11:49,43200,12:00,4890000,, DADE1,1630,2000,23MAR2008,11:50,43200,12:00,3260000,, DADE1,1630,8000,24MAR2008,11:50,43200,12:00,13040000,37616820,32609000 DFRB1,7450,124,24MAR2008,10:54,39600,11:00,923800,,923800 DFRB1,7450,132,24MAR2008,11:16,41400,11:30,983400,1907200,983400 DJBR1,7491,3000,24MAR2008,10:06,37800,10:30,22473000,22473000,22473000 DRZK1,14890,72,24MAR2008,11:58,43200,12:00,1072080,1072080,1072080 FIBR1,2846,100,24MAR2008,11:17,41400,11:30,284600,284600,284600 FKAS1,3584,5173,20MAR2008,9:15,34200,9:30,18540032,, FKAS1,3584,3000,21MAR2008,9:15,34200,9:30,10752000,, FKAS1,3585,1827,22MAR2008,9:15,34200,9:30,6549795,,35841827 FKAS1,3585,183,23MAR2008,9:35,36000,10:00,656055,, FKAS1,3585,3200,24MAR2008,9:35,36000,10:00,11472000,,12128055 FKAS1,3539,2000,25MAR2008,11:02,41400,11:30,7078000,, FKAS1,3538,8000,26MAR2008,11:02,41400,11:30,28304000,, FKAS1,3538,2000,27MAR2008,11:02,41400,11:30,7076000,, FKAS1,3537,8000,28MAR2008,11:02,41400,11:30,28296000,, FKAS1,3537,2000,29MAR2008,11:02,41400,11:30,7074000,, FKAS1,3535,8000,20MAR2008,11:02,41400,11:30,28280000,, FKAS1,3535,2000,19MAR2008,11:03,41400,11:30,7070000,, FKAS1,3535,6617,18MAR2008,11:03,41400,11:30,23391095,, FKAS1,3533,100,17MAR2008,11:03,41400,11:30,353300,, FKAS1,3533,1283,16MAR2008,11:07,41400,11:30,4532839,, FKAS1,3533,2763,15MAR2008,11:08,41400,11:30,9761679,, FKAS1,3529,10000,14MAR2008,11:15,41400,11:30,35290000,, FKAS1,3516,10000,13MAR2008,11:17,41400,11:30,35160000,, FKAS1,3516,10000,12MAR2008,11:19,41400,11:30,35160000,, FKAS1,3516,39,11MAR2008,11:19,41400,11:30,137124,, FKAS1,3515,2000,19MAR2008,11:25,41400,11:30,7030000,, FKAS1,3515,198,24MAR2008,11:25,41400,11:30,695970,, FKAS1,3515,9802,20MAR2008,11:25,41400,11:30,34454030,,299144037 FKAS1,3515,4000,21MAR2008,11:48,43200,12:00,14060000,, FKAS1,3513,6000,22MAR2008,11:52,43200,12:00,21078000,, FKAS1,3514,2000,23MAR2008,11:52,43200,12:00,7028000,, FKAS1,3514,1085,24MAR2008,11:52,43200,12:00,3812690,, FKAS1,3500,1000,25MAR2008,11:56,43200,12:00,3500000,396592609,49478690 FOLD1,3198,390,24MAR2008,9:09,34200,9:30,1247220,,1247220 FOLD1,3197,2000,27MAR2008,10:31,39600,11:00,6394000,, FOLD1,3191,2000,28MAR2008,10:32,39600,11:00,6382000,, FOLD1,3190,4000,20MAR2008,10:33,39600,11:00,12760000,, FOLD1,3190,542,18MAR2008,10:33,39600,11:00,1728980,, ;;;; Now, I want to divide Intradayvolume variable by aggregated Dailyvolume variable in a week before today. It is important to specify for SAS to diagnoses days of a week and adapts it with the date variable in my dataset. Because the format of the date variable of my dataset is ddmmyy. I mean SAS should find which days of a week are today and aggregates Dailyvolume variable of a week before today as the denominator. How can I run that formula? Thanks in advance.
I'm not sure exactly what you're doing there, but one approach might be to create a temporary array and index it with the date. Then look up in that index. You'd have some issues with that simplistic of a method with holidays and such, but it should give you at least an approximately right answer. For example (again, I don't entirely understand your variables or what you're doing, so this is an approximate idea): *Adjusted intraday volume for days of a week; data sampledata_adjvol02; array prevdat[32767] _temporary_; do until(last.TRD_STCK_CD); do until(last.TRD_EVENT_DT); set sampledata_sumvolso02; by TRD_STCK_CD TRD_EVENT_DT; if first.TRD_STCK_CD then n=0; if first.TRD_EVENT_DT then n+1; if n>7 then do; if not missing(IntradayVolume) then adjusted_volume=divide(IntradayVolume,prevdat[TRD_EVENT_DT-7]); else call missing(adjusted_volume); end; if last.TRD_EVENT_DT then temp=dailyvolume; output; prevdat[TRD_EVENT_DT] = sum(prevdat[TRD_EVENT_DT],countedVolume); end; end; call missing(of prevdat[*]); drop temp n; run;
data sampledata_adjvol (drop=cnt dv_:); set Sampledata_SumVolSo; by TRD_STCK_CD TRD_EVENT_DT; retain dv_1 dv_2 dv_3 dv_4 cnt 0 dv_sum; if first.TRD_STCK_CD then do; cnt=0; dv_1=0; dv_2=0; dv_3=0; dv_4=0; dv_sum=0; end; adjusted_volume_5=intradayvolume/dv_sum; if last.TRD_EVENT_DT then do; cnt=cnt+1; if cnt=1 then dv_4=dailyvolume; else if cnt=2 then dv_3=dailyvolume; else if cnt=3 then dv_2=dailyvolume; else if cnt=4 then dv_1=dailyvolume; else do; dv_sum=dailyvolume+dv_1+dv_2+dv_3+dv_4; dv_4=dv_3; dv_3=dv_2; dv_2=dv_1; dv_1=dailyvolume; end; end; run;
SAS: Unable to read dates in the program. How to fix it?
Here's my code. I am unable to read the dates from the input, it keeps giving me incorrect format, I tried changing a few times to mmddyy10. mmddyy8. and others but it still does not read them in correctly. data master_patients; infile datalines; input account_number name $8-16 address $17-34 date MMDDYYYY10. gender $1. insurance_code $49-51 updated_date mmddyyyy10.; datalines; 620135 Smith 234 Aspen St. 12-21-1975 m CBC 02-16-1998 645722 Miyamoto 65 3rd Ave. 04-03-1936 f MCR 05-30-1999 645739 Jensvold 505 Glendale Ave. 06-15-1960 f HLT 09-23-1993 874329 Kazoyan 76-C La Vista . . MCD 01-15-2003 ; proc print data=master_patients; run; Could you please point out where I am going wrong? Thanks for any help.
I recommend a specific informat, rather than anydtdte though it helps you get started. It will ensure that your data is correct. data master_patients; infile datalines; informat date updated_date mmddyy10.; format date updated_date date9.; input account_number name $ 8-16 address $ 17-34 date gender $1. insurance_code $ 49-51 updated_date; datalines; 620135 Smith 234 Aspen St. 12-21-1975 m CBC 02-16-1998 645722 Miyamoto 65 3rd Ave. 04-03-1936 f MCR 05-30-1999 645739 Jensvold 505 Glendale Ave. 06-15-1960 f HLT 09-23-1993 874329 Kazoyan 76-C La Vista . . MCD 01-15-2003 ; run;
There are two main problems. First the informat name does not have 4 Y's in it. Just 2. Second you don't have the column pointer in the right place when you are trying to read 10 characters as a date so that you are getting a blank and then the first 9 characters of the date. SAS cannot represents dates in the second or third century AD. Try MDY(12,21,197) and see what happens. data master_patients; infile datalines firstobs=2; input account_number name $8-16 address $17-34 #36 date MMDDYY10. gender $1. insurance_code $49-51 #53 updated_date mmddyy10. ; datalines; ----+----1----+----2----+----3----+----4----+----5----+----6----+ 620135 Smith 234 Aspen St. 12-21-1975 m CBC 02-16-1998 645722 Miyamoto 65 3rd Ave. 04-03-1936 f MCR 05-30-1999 645739 Jensvold 505 Glendale Ave. 06-15-1960 f HLT 09-23-1993 874329 Kazoyan 76-C La Vista . . MCD 01-15-2003 ; proc print data=master_patients; run;
For modified list input for this problem.Just add ":" between variable name and informat. data master_patients; infile datalines; input account_number name $8-16 address $17-34 date : mmddyy10. gender $1. insurance_code $49-51 updated_date : mmddyy10.; datalines; 620135 Smith 234 Aspen St. 12-21-1975 m CBC 02-16-1998 645722 Miyamoto 65 3rd Ave. 04-03-1936 f MCR 05-30-1999 645739 Jensvold 505 Glendale Ave. 06-15-1960 f HLT 09-23-1993 874329 Kazoyan 76-C La Vista . . MCD 01-15-2003 ; proc print data=master_patients; run; Please note if you don't add ":" , just change mmddyy10. to anydtdte. , the data read into dataset may Not correct.
Gnuplot prints a strange year, 30 years later
I have the next problem with gnuplot, when I print the time gnuplot prints de time+30years. This is a part of my data: 1411336800,1390,0,0,0,10,1411,0,10,0,0,0,0,0,1411 1411340400,1506,0,0,0,10,969,0,10,0,0,0,0,0,969 1411344000,1115,0,0,0,10,1108,0,10,0,0,0,0,0,1108 1411347600,719,0,0,0,10,712,0,10,0,0,0,0,0,712 A part of the script is: set timefmt "%s" stats "<tail -1 uur.txt " using 1:2 nooutput tijd = strftime("%d %B %Y %H:%M", STATS_max_x) print tijd And then gnuplot prints: 21 September 2044 01:00. 44 ? Has some one a clue? I tried several formats but nothing helped.
Until version 4.6, internally gnuplot uses the 1. January 2000 as reference for its date and time functions (in version 5.0 the standard Unix timestamp is used). You shouldn't have any problems with set timefmt "%s" if you plot the data. But when using strftime it makes a difference. Since you're using tail anyway, you can simply use tijd = system('date -d #$(tail -1 uur.txt | cut -d, -f1) +"%d %B %Y %H:%M"') print tijd