If you're into DIY rather than humungous modules, this routine calculates the unix epoch (GMT) for the start and end of BST (and European ST) for the years since they were unified in 1996:

#! perl -slw use strict; use 5.010; sub EuST { state %EuST; my $year = shift; return @{ $EuST{ $year } } if exists $EuST{ $year }; my $start = 1; $start += 86400*365.25 for 1 .. ($year-1970); $start -= 86400 until scalar localtime( $start ) =~ /${ \( $year - + 1 ) }/; $start += 1 until scalar localtime( $start ) =~ /$year/; $start += 59*60+59; $start += 86400*85; $start += 86400 until localtime( $start ) =~ /Apr/; $start -= 86400; $start -= 86400 until localtime( $start ) =~ /Sun/; my $end = $start + 86400 * 30 * 7; $end += 86400 until scalar localtime( $end ) =~ /Nov/; $end -= 86400; $end -= 86400 until scalar localtime( $end ) =~ /Sun/; @{ $EuST{ $year } } = ( $start, $end ); } our $YEAR //= 2013; say map{; "Epoch: $_ => ", scalar localtime( $_ ), ' ' } EuST( $YEAR ) +; __END__ C:\test>for /l %y in (1995,1,2013) do @EuST -YEAR=%y Epoch: 796179599 => Sun Mar 26 00:59:59 1995 Epoch: 814928399 => Sun O +ct 29 01:59:59 1995 Epoch: 828233999 => Sun Mar 31 00:59:59 1996 Epoch: 846377999 => Sun O +ct 27 01:59:59 1996 Epoch: 859683599 => Sun Mar 30 00:59:59 1997 Epoch: 877827599 => Sun O +ct 26 01:59:59 1997 Epoch: 891133199 => Sun Mar 29 00:59:59 1998 Epoch: 909277199 => Sun O +ct 25 01:59:59 1998 Epoch: 922582799 => Sun Mar 28 00:59:59 1999 Epoch: 941331599 => Sun O +ct 31 01:59:59 1999 Epoch: 954032399 => Sun Mar 26 00:59:59 2000 Epoch: 972781199 => Sun O +ct 29 01:59:59 2000 Epoch: 985481999 => Sun Mar 25 00:59:59 2001 Epoch: 1004230799 => Sun +Oct 28 01:59:59 2001 Epoch: 1017536399 => Sun Mar 31 00:59:59 2002 Epoch: 1035680399 => Sun + Oct 27 01:59:59 2002 Epoch: 1048985999 => Sun Mar 30 00:59:59 2003 Epoch: 1067129999 => Sun + Oct 26 01:59:59 2003 Epoch: 1080435599 => Sun Mar 28 00:59:59 2004 Epoch: 1099184399 => Sun + Oct 31 01:59:59 2004 Epoch: 1111885199 => Sun Mar 27 00:59:59 2005 Epoch: 1130633999 => Sun + Oct 30 01:59:59 2005 Epoch: 1143334799 => Sun Mar 26 00:59:59 2006 Epoch: 1162083599 => Sun + Oct 29 01:59:59 2006 Epoch: 1174784399 => Sun Mar 25 00:59:59 2007 Epoch: 1193533199 => Sun + Oct 28 01:59:59 2007 Epoch: 1206838799 => Sun Mar 30 00:59:59 2008 Epoch: 1224982799 => Sun + Oct 26 01:59:59 2008 Epoch: 1238288399 => Sun Mar 29 00:59:59 2009 Epoch: 1256432399 => Sun + Oct 25 01:59:59 2009 Epoch: 1269737999 => Sun Mar 28 00:59:59 2010 Epoch: 1288486799 => Sun + Oct 31 01:59:59 2010 Epoch: 1301187599 => Sun Mar 27 00:59:59 2011 Epoch: 1319936399 => Sun + Oct 30 01:59:59 2011 Epoch: 1332637199 => Sun Mar 25 00:59:59 2012 Epoch: 1351385999 => Sun + Oct 28 01:59:59 2012 Epoch: 1364691599 => Sun Mar 31 00:59:59 2013 Epoch: 1382835599 => Sun + Oct 27 01:59:59 2013

Of course, my localtime *is* BST so you would need to adjust them for your local timezone.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

In reply to Re: bst time? by BrowserUk
in thread bst time? by dirtdog

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.