Date Stamp


On LinkPattern, DaveSmith talked about adding digits to the link pattern. ChrisGarrod hacked the following code together on his experimental wiki. Using a single number to represent any point on the timeline made him year10k compliant years ago:!

A DateStamp uses our current calendar, right now in SanDiego, it's 20030927.1358 -- That's all the digits of accuracy I can see from where I sit.

The code below is ?IlliterateProgramming, it recognizes dates only between 1900 and 2000. Some times can be misrecognized as DateStamps. It also allows for every year to have a February 29th. Is there an elegant way to correct for leap year?

 $sixty="[0-5]$digit";	   # leap seconds ignored
 $seconds="$sixty$digit*";       # seconds to any precision
 $hours="[01]$digit|2[0-3]";     # 0..23
 $twelve="(0$digit|1$ohTwo)";    # allow month 00 and day 00 reasons later
 $twentynine="($twelve)$ohTwo$digit";    # all months can sometimes have 29
 $thirty="(0[13-9]|1$ohTwo)30";	  # except February
 $thirtyone="(0[13578]|1[02])31";	# and most have 31
 $MonthDays="($twentynine|$thirty|$thirtyone)";  #mmdd
 $linkWord = "[A-Z][a-z]+";
 $LinkPattern = "$Acronyms|($linkWord)*$RecentYear|($linkWord)*$DateStamp|($linkWord){2,20}";

I have improved this pattern several times over the past year or so, but have failed to create a sufficient suite of UnitTests -- add a few here as examples please -- ChrisGarrod -- 20030927, I have gone back to awk, it is almost always in the same place across a wide variety of unix clones.


Last edited September 27, 2003
Return to WelcomeVisitors