#!/home/p80/perl/bin/perl -w

use DateTime::Calendar::FrenchRevolutionary;
use Tk;
use Tk::Font;
my $greg;
my $sexagesimal;
my $revolutionary;
my $decimal;
my $p = MainWindow->new();
$p->title('Clock');

my $height =  1;
my $width  = 15;
my $font   = '-*-helvetica-bold-r-*-*-*-120-*-*-*-*-*-*';

my $l1 = $p->Label(-textvariable => \$greg, -width => $width, -height => $height);
$l1->configure(-font => $font);
$l1->pack;
my $l2 = $p->Label(-textvariable => \$sexagesimal, -width => $width, -height => $height);
$l2->configure(-font => $font);
$l2->pack;
my $l3 = $p->Label(-textvariable => \$revolutionary, -width => $width, -height => $height);
$l3->configure(-font => $font);
$l3->pack;
my $l4 = $p->Label(-textvariable => \$decimal, -width => $width, -height => $height);
$l4->configure(-font => $font);
$l4->pack;
$l4->repeat(864, \&majlabel); # every decimal second

$p->Button(-text => "End", -command => sub { exit })->pack;
MainLoop;

sub majlabel {
  my $dg = DateTime::->now;
  my $dr = DateTime::Calendar::FrenchRevolutionary->from_object(object => $dg);
  $greg          = $dg->strftime("%a %d %b %Y");
  $sexagesimal   = $dg->strftime("%H:%M:%S");
  $revolutionary = $dr->strftime("%a %d %b %Y");
  $decimal       = $dr->strftime("%H:%M:%S");
}
