Как получить дату последнего месяца, используя Date :: Calc в Perl? - PullRequest
0 голосов
/ 12 октября 2018

Как получить дату последнего месяца, используя Date :: Calc в perl?

Например, сегодня 8/2018 - я хотел бы, чтобы функция возвращала 7 / 2018.

Еслидата сегодня 1/2019 - должна вернуться 12/2018

Ответы [ 3 ]

0 голосов
/ 12 октября 2018

Date :: Calc, кажется, делает все намного сложнее, чем нужно:

#!/usr/bin/perl

use strict;
use warnings;
use feature 'say';

use Date::Calc qw[Today Add_Delta_Days];

my @today = Today;

my ($year, $month) = Add_Delta_Days(@today, -$today[2]);

say "$month/$year";

Я бы рекомендовал вместо этого посмотреть DateTime .

#!/usr/bin/perl
use strict;
use warnings;
use feature 'say';

use DateTime;

my $today = DateTime->today;
$today->subtract(days => $today->day);
say $today->strftime('%m/%Y');
0 голосов
/ 12 октября 2018

Время :: Момент также предоставляет хорошую альтернативу:

use strict;
use warnings;
use feature 'say';
use Time::Moment;

say Time::Moment->now->minus_months(1)->strftime('%m/%Y');
0 голосов
/ 12 октября 2018

Попробуйте этот код ниже

use Date::Calc qw(:all);

my ($current_year,$current_month,$current_day)=Today;

my ($result_year,$result_month,$result_day)=Add_Delta_YM($current_year,$current_month,$current_day,0,-1);

Если вам нужно полное название месяца, используйте формат ниже

my $result_month_name=Month_to_Text($result_month);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...