This just is just a useful little utility to find the day/date/week number etc. for any date. It is all included in the Gtk2::Calendar widget. It scrolls thru months, and years. I havn't tested it's limits, but it goes ahead many centuries, and will go to B.C. as negative years. Handy for archeologists. :-)
#!/usr/bin/perl
use warnings;
use strict;
use Gtk2 -init;
#if you want to adjust colors, otherwise comment out
Gtk2::Rc->parse_string(<<__);
style "calendar"
{
bg[NORMAL] = "#aadddd" #background of header bar
bg[SELECTED] = "#ff0000" #color of weekday bg when window is moved
bg[PRELIGHT] = "#ccffff" #color of bg of selector-scroller triangles f
+or month/year
fg[NORMAL] = "#000000" #text for days(active) and header
fg[PRELIGHT] = "#ff0000" #color of fg of selector-scroller triangles f
+or month/year
# For the selected item
base[NORMAL] = "#ffffff" #background of dates display
base[SELECTED] = "#99aaaa" #background of weekday names and days
base[ACTIVE] = "#999999" #selected color when active
base[PRELIGHT] = "#0000ff" #selected color when active
}class "*Calendar*" style "calendar"
__
##############################################################
#adjust font
my $font = Gtk2::Pango::FontDescription->from_string("Sans Bold 24");
my $window = Gtk2::Window -> new("toplevel");
$window -> set_title ("Simple Calendar");
$window -> signal_connect (delete_event => sub { Gtk2 -> main_quit();
+});
my $calendar = Gtk2::Calendar -> new();
$calendar->signal_connect( 'day_selected_double_click' => sub {
my ($year, $month, $day) = $calendar->get_date;
printf("%02d/%d/%d\n", $month+1, $day, $year);
});
#will show headings and day names by default, but must
#declare them manually if adding week numbers
$calendar->set_display_options(['show-week-numbers','show-heading','sh
+ow-day-names'] );
$calendar->modify_font($font);
$window -> add($calendar);
$window -> show_all();
Gtk2 -> main();