Portál AbcLinuxu, 10. května 2025 11:19
use Class::Date; my $time1 = Class::Date::date ('2007-05-28 00:00:00'); my $time2 = Class::Date::date ('2007-05-28 24:00:00'); $time1 += '1D' if $time1 < $time2; # my $now = Class::Date::now; # my $now2 = Class::Date::date (time); # my $now3 = Class::Date::date (`date +%s`);pre viac info by to chcelo viac popisu problému.
export PERL5LIB=/home/user/lib/perl5/
k problému: aritmetiku nechať na databázu: (hint)
select datum, cas1, cas2, datum+1D, datum || cas1, datum || cas2;posledné dva stĺpce by mali generovať dátum a čas ako jeden reťazec, reťazcovo provnávateľný (iso formát). A potom v podmienke vybrať buď
datum
alebo datum+1D
epoch
, potom +1D je +86400 fprintf(fw,"BEGIN:VCALENDAR\r\n"); fprintf(fw,"VERSION:2.0\r\n"); fprintf(fw, "BEGIN:VEVENT\r\n"); fprintf(fw, "SUMMARY:%s\r\n", linka); //fprintf(fw, "DESCRIPTION:%s\r\n", linka); fprintf(fw, "CATEGORIES:Prace\r\n"); fprintf(fw, "DTSTART:%04d%02d%02dT%02d%02d00\r\n", rok, mesic, den, zacatek_hodiny, zacatek_minuty); if( zacatek_hodiny < konec_hodiny) fprintf(fw, "DTEND:%04d%02d%02dT%02d%02d00\r\n", rok, mesic, den, konec_hodiny, konec_minuty); else fprintf(fw, "DTEND:%04d%02d%02dT%02d%02d00\r\n", rok, mesic, den+1, konec_hodiny, konec_minuty); fprintf(fw, "AALARM:%04d%02d%02dT%02d%02d00\r\n", rok, mesic, den, zacatek_hodiny-1, zacatek_minuty); fprintf(fw, "END:VEVENT\r\n"); fprintf(fw,"END:VCALENDAR\r\n");
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.