Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Pracovní prostředí => Téma založeno: Martin Bajer 11 Února 2010, 10:07:39
-
Ahoj,
ve firemním prostředí používáme pod Windows program DateDiff, http://www.kobayashi.com/datediff (http://www.kobayashi.com/datediff). Nyní připravuji migraci na 10.04 a hledám něco pro GNOME (v nouzi i KDE/QT). Znáte někdo něco podobného? Rád bych se obešel bez Wine. Díky za jakýkoliv tip.
-
No ak vies trosku javu alebo iny programovaci jazyk, tak si datediff urobis za par minut. Teda ak som nieco neprehliadol na tej webovej stranke.
-
Zjevně neumí, jinak by to nepotřeboval hledat ;)
-
Zjevně neumí, jinak by to nepotřeboval hledat ;)
Mozno vie, ale je len lenivy :)
K veci: alternativu nepoznam :)
-
Při učení se GTK sem napsal (sice hnusně) program pro výpočet rozdílu dvou dnů. Není to sice tak vymakaný jako DateDiff, ale nevím co vše u toho potřebuješ. Ten můj ti napíše jen rozdíl, kolik je to roků, měsíců a dnů.
Tak jestli to chceš vyzkoušet, tak to sem hodím.
-
Java bez GUI(brat s rezervou, venoval som tomu asi 10min zivota :) ):
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* DateDiff -- compute the difference between two dates.
*/
public class DateDiff {
static SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
static SimpleDateFormat sdf2 = new SimpleDateFormat("EEEE, MMM d, yyyy");
/**
* @param argv
* parameters
*/
public static void main(String[] argv) {
if (argv.length != 2 && argv.length != 3) {
printUsage();
System.exit(-1);
}
try {
Date d1 = sdf.parse(argv[0]);
Date d2 = sdf.parse(argv[1]);
// Get msec from each, and subtract.
long diff = d2.getTime() - d1.getTime();
System.out.println("Difference in days: " + (diff / (1000 * 60 * 60 * 24)));
System.out.println("Difference in hour: " + (diff / (1000 * 60 * 60)));
System.out.println("Difference in minutes: " + (diff / (1000 * 60)));
System.out.println("Difference in seconds: " + (diff / 1000));
if (argv.length == 3) {
Calendar gc = GregorianCalendar.getInstance();
gc.setTimeInMillis(d1.getTime());
gc.add(GregorianCalendar.DATE, Integer.parseInt(argv[2]));
System.out.println("" + d1 + " plus " + argv[2] + " days is " + sdf2.format(gc.getTime()));
}
} catch (ParseException e) {
printUsage();
e.printStackTrace();
System.exit(-1);
}
}
private static void printUsage() {
System.out.println("Usage: java " + DateDiff.class.getName() + " date1 date2 [plus_days]");
System.out.println("date1 date2 is in 'yyyy.MM.dd format'.");
}
}
-
BASH s GUI!! ;D
Jedna=$(zenity --calendar --text "Vyber počáteční datum")
Dve=$(zenity --calendar --text "Vyber koncové datum")
S1=$(date --date="$Jedna" +%s)
S2=$(date --date="$Dve" +%s)
[[ $S1 -gt $S2 ]] && { zenity --info --text "Špatně vybraná data!"; exit 1; }
Rozdil=$(($S2 - $S1))
Dnu=$(($Rozdil / 86400))
zenity --info --text "Rozdíl ve dnech je $Dnu"
exit 0
-
Arrange:
Takhle to nefunguje, zrovna něco podobnýho chci použít ve skriptu pro známého, ale ten rozdíl ve dnech takhle nefunguje, navíc date ten řetězec zkousne jen ve formátu den/měsíc/rok.
-
Arrange:
Takhle to nefunguje, zrovna něco podobnýho chci použít ve skriptu pro známého, ale ten rozdíl ve dnech takhle nefunguje, navíc date ten řetězec zkousne jen ve formátu den/měsíc/rok.
ja som si ten script skusil a mne funguje, :), ci si myslel nejaky sofistikovanejsi bug?
-
Hm tak to je divný, mě ten date funguje jinak
[prema@fedora ~]$ ./bar.sh
date: chybné datum: „1.2.2010“
date: chybné datum: „11.2.2010“
./bar.sh: řádek 10: - : syntaktická chyba: očekáván operand (chybný token je „- “)
./bar.sh: řádek 11: / 86400: syntaktická chyba: očekáván operand (chybný token je „/ 86400“)
[prema@fedora ~]$ date --date=10.2.2010 +%s
date: chybné datum: „10.2.2010“
[prema@fedora ~]$ date --date=10/2/2010 +%s
1285970400
-
ake mas nastavene locale?
u mna:
gula@gula-laptop:~$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
-
Hm, že by to bylo tím ?
[prema@fedora ~]$ locale
LANG=cs_CZ.UTF-8
LC_CTYPE="cs_CZ.UTF-8"
LC_NUMERIC="cs_CZ.UTF-8"
LC_TIME="cs_CZ.UTF-8"
LC_COLLATE="cs_CZ.UTF-8"
LC_MONETARY="cs_CZ.UTF-8"
LC_MESSAGES="cs_CZ.UTF-8"
LC_PAPER="cs_CZ.UTF-8"
LC_NAME="cs_CZ.UTF-8"
LC_ADDRESS="cs_CZ.UTF-8"
LC_TELEPHONE="cs_CZ.UTF-8"
LC_MEASUREMENT="cs_CZ.UTF-8"
LC_IDENTIFICATION="cs_CZ.UTF-8"
LC_ALL=
-
A nebylo by nejjednodušší udělat si jeden vzorec v calcu? Rozdíl vypíše ve dnech, potom je to jenom násobení nebo dělení.
-
$ locale
LANG=cs_CZ.UTF-8
LANGUAGE=
LC_CTYPE="cs_CZ.UTF-8"
LC_NUMERIC="cs_CZ.UTF-8"
LC_TIME="cs_CZ.UTF-8"
LC_COLLATE="cs_CZ.UTF-8"
LC_MONETARY="cs_CZ.UTF-8"
LC_MESSAGES="cs_CZ.UTF-8"
LC_PAPER="cs_CZ.UTF-8"
LC_NAME="cs_CZ.UTF-8"
LC_ADDRESS="cs_CZ.UTF-8"
LC_TELEPHONE="cs_CZ.UTF-8"
LC_MEASUREMENT="cs_CZ.UTF-8"
LC_IDENTIFICATION="cs_CZ.UTF-8"
LC_ALL=
???
-
???
Nerozumiem, co si tym chcel povedat. Len ma napadlo, ci nemoze byt rozdiel v nejakom nastaveni, ked dvom to ide a jednemu nie.
-
A webová verze se nehodí? http://www.7is7.com/otto/datediff.html
-
Moc všem děkuji za odpovědi. Příjemně mě překvapilo kolik se jich sešlo. Pamatuji doby, kdy GNU/Linux na desktopu v podstatě nikdo nepoužíval :)
Vypadá to, že analogická aplikace neexistuje.
Naprogramovat alternativu neumím. Asi nejsnažší a hlavně uživatelsky nejefektivnější bude vytvořit potřebné výpočty v OOo Calc.
Zaujal mě "BASH s GUI" od arrange. Muselo by se to ale hodně rozšířit, zapracovat zobrazení dvou kalendářů atd. Nejde totiž jen o zjištění rozdílu v datech, ale i např. na jaký prac. či víkendový den vychází třeba 18.3.2010 +43dnů. Program používáme na plánování letecké, lodní a komb. dopravy z dálného východu.
-
Moc všem děkuji za odpovědi. Příjemně mě překvapilo kolik se jich sešlo. Pamatuji doby, kdy GNU/Linux na desktopu v podstatě nikdo nepoužíval :)
Vypadá to, že analogická aplikace neexistuje.
Naprogramovat alternativu neumím. Asi nejsnažší a hlavně uživatelsky nejefektivnější bude vytvořit potřebné výpočty v OOo Calc.
Zaujal mě "BASH s GUI" od arrange. Muselo by se to ale hodně rozšířit, zapracovat zobrazení dvou kalendářů atd. Nejde totiž jen o zjištění rozdílu v datech, ale i např. na jaký prac. či víkendový den vychází třeba 18.3.2010 +43dnů. Program používáme na plánování letecké, lodní a komb. dopravy z dálného východu.
Ak myslis "analogicka aplikacia" = identicka, tak ano asi neexistuje, lebo ked sa mam priznat nikdy som netusil, ze to moze mat nejake prakticke uplatnenie. Zasa som si rozsiril obzory, vdaka Ti za to.
Co sa tyka veci tu pridanych(rieseni), tak vsetko su to len navrhy zbuchane za par minut, ktore su len nasmerovanim, ako sa dalej uberat. Napr. tebou pozadovane veci sa daju doplnit do bash scriptu, alebo ku mnou pripojenom java kodu sa da lahko urobit GUI v jave, inak vsetko co som videl v Tvojom programe tam uz je funkcne ...
Vsetko je to len o chceni trosku prilozit ruku k dielu. Ako vravi moja mama: "Sam si pomoz a aj boh Ti pomoze." ajked tu asi skor "Sam si pomoz a aj forum Ti pomoze.".
Ak nevies programovat, tak najdi kamarata, alebo tu popros na fore, a mozno sa niekto najde, co do Teba investuje trochu casu, len sa k tomu nestavaj tak, ze 100% to nepokryva to, co robi moj stary program pod ms win, tak na to kaslem.
-
Ak myslis "analogicka aplikacia" = identicka, tak ano asi neexistuje, lebo ked sa mam priznat nikdy som netusil, ze to moze mat nejake prakticke uplatnenie. Zasa som si rozsiril obzory, vdaka Ti za to.
Co sa tyka veci tu pridanych(rieseni), tak vsetko su to len navrhy zbuchane za par minut, ktore su len nasmerovanim, ako sa dalej uberat. Napr. tebou pozadovane veci sa daju doplnit do bash scriptu, alebo ku mnou pripojenom java kodu sa da lahko urobit GUI v jave, inak vsetko co som videl v Tvojom programe tam uz je funkcne ...
Vsetko je to len o chceni trosku prilozit ruku k dielu. Ako vravi moja mama: "Sam si pomoz a aj boh Ti pomoze." ajked tu asi skor "Sam si pomoz a aj forum Ti pomoze.".
Ak nevies programovat, tak najdi kamarata, alebo tu popros na fore, a mozno sa niekto najde, co do Teba investuje trochu casu, len sa k tomu nestavaj tak, ze 100% to nepokryva to, co robi moj stary program pod ms win, tak na to kaslem.
Migruji firmu o dvanácti lidech kompletně na GNU/Linux. Na tento prográmek si kolegové zvykli. Nejsnazší mi přišlo hledat pokud možno funkčně identickou alternativu. Jak jsem psal, zkusím potřebné výpočty zapravovat do tabulky v Calcu. Také díky za rozšíření obzorů. Martin
-
Ak myslis "analogicka aplikacia" = identicka, tak ano asi neexistuje, lebo ked sa mam priznat nikdy som netusil, ze to moze mat nejake prakticke uplatnenie. Zasa som si rozsiril obzory, vdaka Ti za to.
Co sa tyka veci tu pridanych(rieseni), tak vsetko su to len navrhy zbuchane za par minut, ktore su len nasmerovanim, ako sa dalej uberat. Napr. tebou pozadovane veci sa daju doplnit do bash scriptu, alebo ku mnou pripojenom java kodu sa da lahko urobit GUI v jave, inak vsetko co som videl v Tvojom programe tam uz je funkcne ...
Vsetko je to len o chceni trosku prilozit ruku k dielu. Ako vravi moja mama: "Sam si pomoz a aj boh Ti pomoze." ajked tu asi skor "Sam si pomoz a aj forum Ti pomoze.".
Ak nevies programovat, tak najdi kamarata, alebo tu popros na fore, a mozno sa niekto najde, co do Teba investuje trochu casu, len sa k tomu nestavaj tak, ze 100% to nepokryva to, co robi moj stary program pod ms win, tak na to kaslem.
Migruji firmu o dvanácti lidech kompletně na GNU/Linux. Na tento prográmek si kolegové zvykli. Nejsnazší mi přišlo hledat pokud možno funkčně identickou alternativu. Jak jsem psal, zkusím potřebné výpočty zapravovat do tabulky v Calcu. Také díky za rozšíření obzorů. Martin
zítra ten program sem pošlu, v python-gtk (programuju, je to na hodinku..)
-
GTK saje, já to budu mít v Qt :P
-
woow Quejky a GTK ? TO bude konec světa ? ;D
-
A já se to pro úplnost pokusím spíchnout pro OOo a to včetně zobrazení dnů v měsíci ;)
BTW, co ti vadí na wine?
(http://s1.imgupload.cz/img/199566/AdV9A/DateDiff_wine.png) (http://imgupload.cz/)
-
woow Quejky a GTK ? TO bude konec světa ? ;D
psal nejlíp pro gnome a KDE v nouzi :)
tak to dělám v pygtk, přesná kopie se vším všudy
-
GTK saje, já to budu mít v Qt :P
obojí saje, EFL rules
-
gDateDiff 0.1
by quaker <quaker66@gmail.com>
Download: http://opengeu.linuxfreedom.com/quakerstuff/gdatediff_0.1.tar.gz
Screenshot v příloze příspěvku
Licence: GPL v3, ikona z Tango projektu
v archivu je přiložen jak .deb balíček, tak zdrojový kód s Makefile pro snadnou instalaci(make && sudo make install) a DESTDIR podporou pro balíčkování.
Spuštění: příkaz gdatediff
V případě potřeby je možno bez problému udělat spouštěč.
Program je překladatelný a Makefile má podporu pro nové překlady, zatím je tam čeština.(+ kód je v AJ)
Jazyk použitý pro psaní je Python = žádná kompilace, jen spuštění a grafický toolkit Gtk+ použitý v Gnome.
[attachment deleted by admin]
-
Takhle to dopadá, když má někdo rád programování :)
-
jen škoda toho Gtk+ :D radši bych použil něco jiného, ale autor tématu chtěl pro Gnome
aspoň jsem si trochu vyzkoušel po delší době Cčkaření zase pythona
-
quaker66: komu čest, tomu čest, je to paráda
s křížkem po funuse má verze pro OOo:
(http://s2.imgupload.cz/img/-150-150/201195/HfIrU/DateDiff_CALC_screenshot.png) (http://s2.imgupload.cz/img/--/201195/HfIrU/DateDiff_CALC_screenshot.png)
kdyby měl někdo zájem, tak dejte vědět, řádky 6 až 16 je samozřejmě možné skrýt
btw: INT(-1/7)=-1 mne docela vykolejilo (i když je to vlastně logický) :-[
-
quaker66: komu čest, tomu čest, je to paráda
s křížkem po funuse má verze pro OOo:
(http://s2.imgupload.cz/img/-150-150/201195/HfIrU/DateDiff_CALC_screenshot.png) (http://s2.imgupload.cz/img/--/201195/HfIrU/DateDiff_CALC_screenshot.png)
kdyby měl někdo zájem, tak dejte vědět, řádky 6 až 16 je samozřejmě možné skrýt
btw: INT(-1/7)=-1 mne docela vykolejilo (i když je to vlastně logický) :-[
moc hezký! :)
-
//EDIT LuciusMare: Víš že můžeš příspěvky i upravovat? ;)
BTW, co ti vadí na wine?
Nic. Wine vnímám jako berličku. Nechci si do systému tahat 'Windows'.
s křížkem po funuse má verze pro OOo:
(http://s2.imgupload.cz/img/-150-150/201195/HfIrU/DateDiff_CALC_screenshot.png) (http://s2.imgupload.cz/img/--/201195/HfIrU/DateDiff_CALC_screenshot.png)
kdyby měl někdo zájem, tak dejte vědět, řádky 6 až 16 je samozřejmě možné skrýt
Ahoj, taky to vypadá moc zajímavě. Zobrazení svátků je důležitá vlastnost. Mohu poprosit o zaslání na email?
Díky.
gDateDiff 0.1
by quaker <quaker66@gmail.com>
Download: http://opengeu.linuxfreedom.com/quakerstuff/gdatediff_0.1.tar.gz
Screenshot v příloze příspěvku
Licence: GPL v3, ikona z Tango projektu
Tak to je úžasné, úplně mě to odrovnalo :) Díky mnohokrát!!
Škoda, že se v Pythonu neorientuji, napadí mě několik zlepšení. Jen jsem se v tom malinko pohrabal, změnil krok na šipkách ze 100 na 10 a vyhodil rozdíly v sekundách, minutách, hodinách, protože mě zajímají jen dny.
Takto to vypadá u mě:
[attachment deleted by admin]
-
Len tak pre info :D
quaker66: koľko ti trvalo než si sa naučil tak programovať??? ;D ;D ;D
-
Len tak pre info :D
quaker66: koľko ti trvalo než si sa naučil tak programovať??? ;D ;D ;D
no zabývám se tím tak rok a půl, python jsem se učil tak dva týdny abych to uměl dobře(už dávno), Cčko trvalo pár měsíců. Před pythonem a Cčkem jsem uměl ještě bash.(tím se zabývám od doby co Linux používám, tzn. polovina 2007)