Skip to content

Instantly share code, notes, and snippets.

@JEEN
Created December 10, 2015 08:59
Show Gist options
  • Save JEEN/3d05660a0fee0305a911 to your computer and use it in GitHub Desktop.
Save JEEN/3d05660a0fee0305a911 to your computer and use it in GitHub Desktop.
DateTime::Format::Flexible::lang::ko
package DateTime::Format::Flexible::lang::ko;
use strict;
use warnings;
use utf8;
sub new
{
my ( $class , %params ) = @_;
my $self = bless \%params , $class;
return $self;
}
sub months
{
return (
qr{1월} => 1,
qr{2월} => 2,
qr{3월} => 3,
qr{4월} => 4,
qr{5월} => 5,
qr{6월} => 6,
qr{7월} => 7,
qr{8월} => 8,
qr{9월} => 9,
qr{10월} => 10,
qr{11월} => 11,
qr{12월} => 12,
);
}
sub days
{
return (
qr{\b월요일\b} => 1, # Monday
qr{\b화요일\b} => 2, # Tuesday
qr{\b수요일\b} => 3, # Wednesday
qr{\b목요일\b} => 4, # Thursday
qr{\b금요일\b} => 5, # Friday
qr{\b토요일\b} => 6, # Saturday
qr{\b일요일\b} => 7, # Sunday
);
}
sub day_numbers
{
return (
qr{1일} => 1,
qr{2일} => 2,
qr{3일} => 3,
qr{4일} => 4,
qr{5일} => 5,
qr{6일} => 6,
qr{7일} => 7,
qr{8일} => 8,
qr{9일} => 9,
qr{10일} => 10,
qr{11일} => 11,
qr{12일} => 12,
qr{13일} => 13,
qr{14일} => 14,
qr{15일} => 15,
qr{16일} => 16,
qr{17일} => 17,
qr{18일} => 18,
qr{19일} => 19,
qr{20일} => 20,
qr{21일} => 21,
qr{22일} => 22,
qr{23일} => 23,
qr{24일} => 24,
qr{25일} => 25,
qr{26일} => 26,
qr{27일} => 27,
qr{28일} => 28,
qr{29일} => 29,
qr{30일} => 30,
qr{31일} => 31,
);
}
sub hours
{
return (
'정오' => '12:00:00',
'자정' => '00:00:00',
);
}
sub remove_strings {
return (
);
}
sub parse_time
{
my ( $self, $date ) = @_;
$date =~ s/(\d+)(?:년|월|일)/$1/g;
$date =~ s/[Xn ]//g;
return $date;
}
sub string_dates
{
my $base_dt = DateTime::Format::Flexible->base;
return (
'지금' => sub { return $base_dt->datetime },
'오늘' => sub { return $base_dt->clone->truncate( to => 'day' )->ymd } ,
'내일' => sub { return $base_dt->clone->truncate( to => 'day' )->add( days => 1 )->ymd },
'어제' => sub { return $base_dt->clone->truncate( to => 'day' )->subtract( days => 1 )->ymd },
'모레' => sub { return DateTime->today->add( days => 2 )->ymd },
'내일모레' => sub { return DateTime->today->add( days => 2 )->ymd },
'글피' => sub { return DateTime->today->add( days => 3 )->ymd },
);
}
sub ago
{
return qr{\b전\b}i;
}
sub math_strings
{
return (
'년' => 'years',
'월' => 'months',
'개월' => 'months',
'일' => 'days',
'시' => 'hours',
'시간' => 'hours',
'분' => 'minutes' ,
);
}
sub timezone_map
{
return (
KST => 'Asia/Seoul',
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment