1*3ac0a46fSAndroid Build Coastguard Worker{{header}} 2*3ac0a46fSAndroid Build Coastguard Worker{{object 1 0}} << 3*3ac0a46fSAndroid Build Coastguard Worker /Type /Catalog 4*3ac0a46fSAndroid Build Coastguard Worker /Pages 2 0 R 5*3ac0a46fSAndroid Build Coastguard Worker /OpenAction 10 0 R 6*3ac0a46fSAndroid Build Coastguard Worker>> 7*3ac0a46fSAndroid Build Coastguard Workerendobj 8*3ac0a46fSAndroid Build Coastguard Worker{{object 2 0}} << 9*3ac0a46fSAndroid Build Coastguard Worker /Type /Pages 10*3ac0a46fSAndroid Build Coastguard Worker /Count 1 11*3ac0a46fSAndroid Build Coastguard Worker /Kids [ 12*3ac0a46fSAndroid Build Coastguard Worker 3 0 R 13*3ac0a46fSAndroid Build Coastguard Worker ] 14*3ac0a46fSAndroid Build Coastguard Worker>> 15*3ac0a46fSAndroid Build Coastguard Workerendobj 16*3ac0a46fSAndroid Build Coastguard Worker% Page number 0. 17*3ac0a46fSAndroid Build Coastguard Worker{{object 3 0}} << 18*3ac0a46fSAndroid Build Coastguard Worker /Type /Page 19*3ac0a46fSAndroid Build Coastguard Worker /Parent 2 0 R 20*3ac0a46fSAndroid Build Coastguard Worker /Resources << 21*3ac0a46fSAndroid Build Coastguard Worker /Font <</F1 15 0 R>> 22*3ac0a46fSAndroid Build Coastguard Worker >> 23*3ac0a46fSAndroid Build Coastguard Worker /Contents [21 0 R] 24*3ac0a46fSAndroid Build Coastguard Worker /MediaBox [0 0 612 792] 25*3ac0a46fSAndroid Build Coastguard Worker>> 26*3ac0a46fSAndroid Build Coastguard Workerendobj 27*3ac0a46fSAndroid Build Coastguard Worker% OpenAction action 28*3ac0a46fSAndroid Build Coastguard Worker{{object 10 0}} << 29*3ac0a46fSAndroid Build Coastguard Worker /Type /Action 30*3ac0a46fSAndroid Build Coastguard Worker /S /JavaScript 31*3ac0a46fSAndroid Build Coastguard Worker /JS 11 0 R 32*3ac0a46fSAndroid Build Coastguard Worker>> 33*3ac0a46fSAndroid Build Coastguard Workerendobj 34*3ac0a46fSAndroid Build Coastguard Worker% JS program to execute 35*3ac0a46fSAndroid Build Coastguard Worker{{object 11 0}} << 36*3ac0a46fSAndroid Build Coastguard Worker {{streamlen}} 37*3ac0a46fSAndroid Build Coastguard Worker>> 38*3ac0a46fSAndroid Build Coastguard Workerstream 39*3ac0a46fSAndroid Build Coastguard Workerfunction TestOneFormat(str, d) { 40*3ac0a46fSAndroid Build Coastguard Worker try { 41*3ac0a46fSAndroid Build Coastguard Worker app.alert(str + ": " + util.printd(str, d)); 42*3ac0a46fSAndroid Build Coastguard Worker } 43*3ac0a46fSAndroid Build Coastguard Worker catch (e) { 44*3ac0a46fSAndroid Build Coastguard Worker app.alert(str + ": Caught error: " + e); 45*3ac0a46fSAndroid Build Coastguard Worker } 46*3ac0a46fSAndroid Build Coastguard Worker} 47*3ac0a46fSAndroid Build Coastguard Workerfunction TestOneXFAFormat(str, d, flag) { 48*3ac0a46fSAndroid Build Coastguard Worker try { 49*3ac0a46fSAndroid Build Coastguard Worker app.alert(str + ": " + util.printd(str, d, flag)); 50*3ac0a46fSAndroid Build Coastguard Worker } 51*3ac0a46fSAndroid Build Coastguard Worker catch (e) { 52*3ac0a46fSAndroid Build Coastguard Worker app.alert(str + ": Caught error: " + e); 53*3ac0a46fSAndroid Build Coastguard Worker } 54*3ac0a46fSAndroid Build Coastguard Worker} 55*3ac0a46fSAndroid Build Coastguard Worker 56*3ac0a46fSAndroid Build Coastguard Worker// Invalid arguments. 57*3ac0a46fSAndroid Build Coastguard Workertry { 58*3ac0a46fSAndroid Build Coastguard Worker util.printd(); 59*3ac0a46fSAndroid Build Coastguard Worker} catch (e) { 60*3ac0a46fSAndroid Build Coastguard Worker app.alert('PASS: ' + e); 61*3ac0a46fSAndroid Build Coastguard Worker} 62*3ac0a46fSAndroid Build Coastguard Workertry { 63*3ac0a46fSAndroid Build Coastguard Worker util.printd('mm'); 64*3ac0a46fSAndroid Build Coastguard Worker} catch (e) { 65*3ac0a46fSAndroid Build Coastguard Worker app.alert('PASS: ' + e); 66*3ac0a46fSAndroid Build Coastguard Worker} 67*3ac0a46fSAndroid Build Coastguard Workertry { 68*3ac0a46fSAndroid Build Coastguard Worker util.printd('mm', new Date(undefined)); 69*3ac0a46fSAndroid Build Coastguard Worker} catch (e) { 70*3ac0a46fSAndroid Build Coastguard Worker app.alert('PASS: ' + e); 71*3ac0a46fSAndroid Build Coastguard Worker} 72*3ac0a46fSAndroid Build Coastguard Worker 73*3ac0a46fSAndroid Build Coastguard Worker// July 4th, 2014 11:59:59 AM local time. 74*3ac0a46fSAndroid Build Coastguard Workervar d1 = new Date(2014, 06, 04, 15, 59, 58); 75*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", d1); 76*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat(0, d1); 77*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat(1, d1); 78*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat(2, d1); 79*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat(3, d1); 80*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mmmm", d1); 81*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mmm", d1); 82*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm", d1); 83*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("m", d1); 84*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("dddd", d1); 85*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("ddd", d1); 86*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("dd", d1); 87*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("d", d1); 88*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("yyyy", d1); 89*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("yy", d1); 90*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("HH", d1); 91*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("H", d1); 92*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("hh", d1); 93*3ac0a46fSAndroid Build Coastguard Worker// "h" is inconsitent between platforms: " 3" vs. "3" 94*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("MM", d1); 95*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("M", d1); 96*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("ss", d1); 97*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("s", d1); 98*3ac0a46fSAndroid Build Coastguard Worker// "tt" is inconsitent between platforms: "PM" vs, "pm" vs. "P" 99*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("t", d1); 100*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("abc.efg.i.kl.nopqr..uvwxyzABC.EFG.I.KL.NOPQR..UVWXYZ0123456780", d1); 101*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("!@#$^&*()-_<>[];:~", d1); 102*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("%z %d %%z %%d %%%z %%%d %%% hh:MM", d1); 103*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("", d1); 104*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy", d1); 105*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy", new Date(1850, 0, 1)); 106*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy", new Date(2525, 11, 31)); 107*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy"); 108*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat(); 109*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy", 42); 110*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy", "clams"); 111*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy", {"clams": 3}); 112*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy", ["clams", 3]); 113*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat({"clams": 3}, d1); 114*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat(["clams", 3], d1); 115*3ac0a46fSAndroid Build Coastguard WorkerTestOneXFAFormat("mm", d1, false); 116*3ac0a46fSAndroid Build Coastguard WorkerTestOneXFAFormat("mm", d1, true); 117*3ac0a46fSAndroid Build Coastguard Worker 118*3ac0a46fSAndroid Build Coastguard Worker// Date with year 0. 119*3ac0a46fSAndroid Build Coastguard Worker// TODO(thestig): Why is the output different from Acrobat? 120*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(0, 06, 04, 15, 59, 58)); 121*3ac0a46fSAndroid Build Coastguard Worker// Date with month 20. 122*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 20, 04, 15, 59, 58)); 123*3ac0a46fSAndroid Build Coastguard Worker// Date with day 100. 124*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 20, 100, 15, 59, 58)); 125*3ac0a46fSAndroid Build Coastguard Worker// Date with hour 50 126*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, 04, 50, 59, 58)); 127*3ac0a46fSAndroid Build Coastguard Worker// Date with minute 1234. 128*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, 04, 15, 1234, 58)); 129*3ac0a46fSAndroid Build Coastguard Worker// Date with second 65. 130*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, 04, 15, 59, 65)); 131*3ac0a46fSAndroid Build Coastguard Worker// Date with April 31th. 132*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 03, 31, 15, 59, 58)); 133*3ac0a46fSAndroid Build Coastguard Worker// Date with February 30th. 134*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 01, 30, 15, 59, 58)); 135*3ac0a46fSAndroid Build Coastguard Worker// Date with negative year. 136*3ac0a46fSAndroid Build Coastguard Worker// Acrobat prints out "07/04/-001 15:59:58" but handling this rarely used case 137*3ac0a46fSAndroid Build Coastguard Worker// outside of FXSYS_wcsftime() is a lot of work. 138*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(-1, 06, 04, 15, 59, 58)); 139*3ac0a46fSAndroid Build Coastguard Worker// Date with negative month. 140*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, -1, 30, 15, 59, 58)); 141*3ac0a46fSAndroid Build Coastguard Worker// Date with negative day. 142*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, -1, 15, 59, 58)); 143*3ac0a46fSAndroid Build Coastguard Worker// Date with negative hour. 144*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, 04, -1, 59, 58)); 145*3ac0a46fSAndroid Build Coastguard Worker// Date with negative minute. 146*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, 04, 15, -1, 58)); 147*3ac0a46fSAndroid Build Coastguard Worker// Date with negative second. 148*3ac0a46fSAndroid Build Coastguard WorkerTestOneFormat("mm/dd/yyyy HH:MM:ss", new Date(2014, 06, 04, 15, 59, -1)); 149*3ac0a46fSAndroid Build Coastguard Workerendstream 150*3ac0a46fSAndroid Build Coastguard Workerendobj 151*3ac0a46fSAndroid Build Coastguard Worker{{xref}} 152*3ac0a46fSAndroid Build Coastguard Worker{{trailer}} 153*3ac0a46fSAndroid Build Coastguard Worker{{startxref}} 154*3ac0a46fSAndroid Build Coastguard Worker%%EOF 155