bestimmte rueckwaertige Uhrzeit bilden?

bestimmte rueckwaertige Uhrzeit bilden?

am 14.08.2006 16:27:46 von Astrid Kuhr

Hallo!

Moechte automatisiert Bilder kopieren.
Die Bilder haben einen Zeitstempel im Namen.
Die Bilder gibt es immer um 00, 15, 30, 45 neu.
Generell haben die Bilder im Namen einen Offset
von 2h. Also das Bild, was ...1330 heisst, ist
eigentlich um 1530 gemacht worden.
Und dann kommen die Bilder mit 15min Verspaetung.
Also wenn man um 14 Uhr schaut, ist das letzte
Bild von 13:45, also mit Zeitstempel 1145 (wg. den
2. Std. Offset).

Nun moechte ich mit einem Perl-Script, was ich zu
einem beliebigen Zeitpunkt anwerfe, jeweils das
letzte Bild ansprechen.

Also z.B, wenn ich das Script um 16:01 anwerfen,
dann kommt der Zeitstempel 1345.
Wenn ich es um 17:39 anwerfe, dann kommt der
Zeitstempel 1500 usw.

Sowas kann man mit Perl doch sicher relativ
konfortabel loesen, oder?

Gruss, Astrid

Re: bestimmte rueckwaertige Uhrzeit bilden?

am 14.08.2006 16:56:10 von Christian Winter

Astrid Kuhr schrieb:
> Hallo!
>
> Moechte automatisiert Bilder kopieren.
> Die Bilder haben einen Zeitstempel im Namen.
> Die Bilder gibt es immer um 00, 15, 30, 45 neu.
> Generell haben die Bilder im Namen einen Offset
> von 2h. Also das Bild, was ...1330 heisst, ist
> eigentlich um 1530 gemacht worden.
> Und dann kommen die Bilder mit 15min Verspaetung.
> Also wenn man um 14 Uhr schaut, ist das letzte
> Bild von 13:45, also mit Zeitstempel 1145 (wg. den
> 2. Std. Offset).
>
> Nun moechte ich mit einem Perl-Script, was ich zu
> einem beliebigen Zeitpunkt anwerfe, jeweils das
> letzte Bild ansprechen.
>
> Also z.B, wenn ich das Script um 16:01 anwerfen,
> dann kommt der Zeitstempel 1345.
> Wenn ich es um 17:39 anwerfe, dann kommt der
> Zeitstempel 1500 usw.
>
> Sowas kann man mit Perl doch sicher relativ
> konfortabel loesen, oder?

Sischer.

---------------------------------------------------
#!/usr/bin/perl

use strict;
use warnings;
use POSIX;

my $jetzt = time;

my $letztes = $jetzt - ( $jetzt % 900 ) - 7200;
# 900s = 15 Minuten, 7200s = 2 h

my $stamp = strftime( '%H%M', localtime($letztes) );
# Siehe "perldoc POSIX", Funktion "strftime" und
# "perldoc -f localtime"

print "Letztes Bild: $stamp.jpg" . $/;
----------------------------------------------------

HTH
-Christian

Re: bestimmte rueckwaertige Uhrzeit bilden?

am 14.08.2006 23:18:26 von David Haller

Christian Winter wrote:
> Astrid Kuhr schrieb:
>> Moechte automatisiert Bilder kopieren.
>> Die Bilder haben einen Zeitstempel im Namen.
>> Die Bilder gibt es immer um 00, 15, 30, 45 neu.
>> Generell haben die Bilder im Namen einen Offset
>> von 2h. Also das Bild, was ...1330 heisst, ist
>> eigentlich um 1530 gemacht worden.

Sicher, dass es immer 2 Stunden sind?

Ich vermute, die Dateinamen die Uhrzeit in UTC enthalten.

>> Und dann kommen die Bilder mit 15min Verspaetung.
>> Also wenn man um 14 Uhr schaut, ist das letzte
>> Bild von 13:45, also mit Zeitstempel 1145 (wg. den
>> 2. Std. Offset).
[..]
> Sischer.
[..]
> my $letztes = $jetzt - ( $jetzt % 900 ) - 7200;
> # 900s = 15 Minuten, 7200s = 2 h
>
> my $stamp = strftime( '%H%M', localtime($letztes) );
> print "Letztes Bild: $stamp.jpg" . $/;

====
#!/usr/bin/perl -w
use strict;
use POSIX;
$ENV{TZ}="UTC";
my $j=time();
print strftime("namensanfang-%H%M.jpg$/", gmtime($j - ($j % 900) ) );
====

Das stimmt auch dann noch, wenn wieder Winterzeit gilt ;)

-dnh

--
Das Leben ist ein Rollenspiel, in dem man den Endgegner niemals
besiegen kann. [WoKo in dagĀ°]

Re: bestimmte rueckwaertige Uhrzeit bilden?

am 15.08.2006 10:38:56 von Astrid Kuhr

Hallo!

Besten Dank Euch beiden. :)
Ja, David, mit Deiner UTC-Vermutung lags Du
richtig. Das haette ich aber in Kauf genommen,
2x im Jahr die Zahl dann haendisch zu aendern.
Aber so ist es dann natuerlich noch konfortabler. ;)

Gruss, Astrid