#!/usr/bin/perl
use strict;
use warnings;
package Widget::Date;
use Moose;
use Date::Calc qw/check_date Today/;
has 'day' => ( is => 'rw' );
has 'month' => ( is => 'rw' );
has 'year' => ( is => 'rw' );
has 'name' => ( is => 'rw' );
sub set_today {
my $self = shift;
($self->{'year'}, $self->{'month'}, $self->{'day'}) = Today;
}
sub is_valid {
my $self = shift;
return check_date($self->year, $self->month, $self->day);
}
sub as_text {
my $self = shift;
return $self->day . '.' . $self->month . '.' . $self->year;
}
sub from_cgi {
my $self = shift;
my $q = shift;
die 'Widget::Date->from_cgi_query needs a CGI-object!'
unless ref $q eq 'CGI';
$self->day($q->param($self->name . '_d'));
$self->month($q->param($self->name . '_m'));
$self->year($q->param($self->name . '_y'));
}
sub as_form {
my $self = shift;
my $o = '' . "\n" . " " . "\n";
$o .= '' . "\n" . " " . "\n";
$o .= '' . "\n" . " " . "\n";
return $o;
}
1;