1#!/usr/bin/perl 2 3use warnings; 4use strict; 5use Test::Inter; 6$::ti = new Test::Inter $0; 7require "tests.pl"; 8 9our $obj = new Date::Manip::Date; 10$obj->config("forcedate","2000-01-21-12:00:00,America/New_York"); 11 12sub test { 13 my(@test)=@_; 14 if ($test[0] eq "config") { 15 shift(@test); 16 $obj->config(@test); 17 return (); 18 } 19 20 my $err = $obj->parse(@test); 21 if ($err) { 22 return $obj->err(); 23 } else { 24 my $d1 = $obj->value(); 25 my $d2 = $obj->value("gmt"); 26 return($d1,$d2); 27 } 28} 29 30my $tests=" 31 32Friday => 2000012100:00:00 2000012105:00:00 33 34'Friday at 13:00' => 2000012113:00:00 2000012118:00:00 35 36Monday => 2000011700:00:00 2000011705:00:00 37 38'Monday at 13:00' => 2000011713:00:00 2000011718:00:00 39 40Saturday => 2000012200:00:00 2000012205:00:00 41 42'Saturday at 13:00' => 2000012213:00:00 2000012218:00:00 43 44### 45 46'next friday' => 2000012800:00:00 2000012805:00:00 47 48'next sunday' => 2000012300:00:00 2000012305:00:00 49 50'last friday' => 2000011400:00:00 2000011405:00:00 51 52'last sunday' => 2000011600:00:00 2000011605:00:00 53 54'last sunday at 13:00' => 2000011613:00:00 2000011618:00:00 55 56#### 57 58'next year' => 2001012100:00:00 2001012105:00:00 59 60'last year' => 1999012100:00:00 1999012105:00:00 61 62'next month' => 2000022100:00:00 2000022105:00:00 63 64'last month' => 1999122100:00:00 1999122105:00:00 65 66'next week' => 2000012800:00:00 2000012805:00:00 67 68'last week' => 2000011400:00:00 2000011405:00:00 69 70'last week at 13:00' => 2000011413:00:00 2000011418:00:00 71 72### 73 74'last day in October 1997' => 1997103100:00:00 1997103105:00:00 75 76'last day in October' => 2000103100:00:00 2000103105:00:00 77 78### 79 80'last tue in Jun 96' => 1996062500:00:00 1996062504:00:00 81 82'last tueSday of Jan' => 2000012500:00:00 2000012505:00:00 83 84### 85 86'last Tue in 1997' => 1997123000:00:00 1997123005:00:00 87 88### 89 90'first tue in Jun 1996' => 1996060400:00:00 1996060404:00:00 91 92'3rd tuesday in Jun 96' => 1996061800:00:00 1996061804:00:00 93 94'3rd tuesday in Jun 96 at 10:30am' => 1996061810:30:00 1996061814:30:00 95 96'3rd tuesday in Jun 96 at 10:30 pm' => 1996061822:30:00 1996061902:30:00 97 98'3rd tuesday in Jun 96 at 10:30 pm GMT' => 1996061822:30:00 1996061822:30:00 99 100'3rd tuesday in Jun 96 at 10:30 pm CDT' => 1996061822:30:00 1996061903:30:00 101 102'first tue in Jun' => 2000060600:00:00 2000060604:00:00 103 104'3rd tuesday in Jun' => 2000062000:00:00 2000062004:00:00 105 106### 107 108'Dec 1st 1970' => 1970120100:00:00 1970120105:00:00 109 110'Dec 1st' => 2000120100:00:00 2000120105:00:00 111 112'1st Dec 1970' => 1970120100:00:00 1970120105:00:00 113 114'1st Dec' => 2000120100:00:00 2000120105:00:00 115 116'1970 Dec 1st' => 1970120100:00:00 1970120105:00:00 117 118'1970 1st Dec' => 1970120100:00:00 1970120105:00:00 119 120### 121 122'22nd sunday' => 2000052800:00:00 2000052804:00:00 123 124'twenty-second sunday 1996' => 1996060200:00:00 1996060204:00:00 125 126'22nd sunday in 1996' => 1996060200:00:00 1996060204:00:00 127 128### 129 130'Friday week' => 2000012800:00:00 2000012805:00:00 131 132'Monday week' => 2000012400:00:00 2000012405:00:00 133 134### 135 136today => 2000012100:00:00 2000012105:00:00 137 138'today at 14:30' => 2000012114:30:00 2000012119:30:00 139 140tomorrow => 2000012200:00:00 2000012205:00:00 141 142'tomorrow at 14:30' => 2000012214:30:00 2000012219:30:00 143 144yesterday => 2000012000:00:00 2000012005:00:00 145 146'yesterday at 14:30' => 2000012014:30:00 2000012019:30:00 147 148'today week' => 2000012800:00:00 2000012805:00:00 149 150'today week at 14:30' => 2000012814:30:00 2000012819:30:00 151 152'tomorrow week' => 2000012900:00:00 2000012905:00:00 153 154'tomorrow week at 14:30' => 2000012914:30:00 2000012919:30:00 155 156'yesterday week' => 2000012700:00:00 2000012705:00:00 157 158'yesterday week at 14:30' => 2000012714:30:00 2000012719:30:00 159 160### 161 162'sunday week 1 1999' => 1999011000:00:00 1999011005:00:00 163 164'sunday 1st week 1999' => 1999011000:00:00 1999011005:00:00 165 166'sunday week 1' => 2000010900:00:00 2000010905:00:00 167 168'sunday 1st week' => 2000010900:00:00 2000010905:00:00 169 170### 171 1721st => 2000010100:00:00 2000010105:00:00 173 174tenth => 2000011000:00:00 2000011005:00:00 175 176### 177 178now => 2000012112:00:00 2000012117:00:00 179 180'epoch 0' => 1969123119:00:00 1970010100:00:00 181 182'epoch 400000' => 1970010510:06:40 1970010515:06:40 183 184'today week' => 2000012800:00:00 2000012805:00:00 185 186'today week at 4:00' => 2000012804:00:00 2000012809:00:00 187 188### 189 190'5th Sunday in October 2010' => 2010103100:00:00 2010103104:00:00 191 192'9th Sunday in October 2010' => '[parse] Invalid date string' 193 194'Sunday, 3rd October 2010' => 2010100300:00:00 2010100304:00:00 195 196'Monday, 3rd October 2010' => '[parse] Day of week invalid' 197 198'3rd tuesday in Jun 96 at 10:30 pm CET' => 1996061822:30:00 1996061821:30:00 199 200### 201 202'sunday w 22 in 1996' => 1996060200:00:00 1996060204:00:00 203 204'sunday 22nd w in 1996' => 1996060200:00:00 1996060204:00:00 205 206"; 207 208$::ti->tests(func => \&test, 209 tests => $tests); 210$::ti->done_testing(); 211 212#Local Variables: 213#mode: cperl 214#indent-tabs-mode: nil 215#cperl-indent-level: 3 216#cperl-continued-statement-offset: 2 217#cperl-continued-brace-offset: 0 218#cperl-brace-offset: 0 219#cperl-brace-imaginary-offset: 0 220#cperl-label-offset: 0 221#End: 222