Vypsání data s měsícem v češtině. – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vypsání data s měsícem v češtině. – C / C++ – Fórum – Programujte.comVypsání data s měsícem v češtině. – C / C++ – Fórum – Programujte.com

 

polopes
~ Anonymní uživatel
7 příspěvků
17. 10. 2015   #1
-
0
-

Zdravím, mám problém na windows 7 vypsat aktualní datum s uvedeným měsícem a dnem v čestině.

 tohle mi funguje:

ale je to tam anglicky, když zkusím přidat locale, tak mi to hazí chybu až po spuštění aplikace ze nelze najít locales.. neco jsem vyhledal, ale nevím jestli správně pochopil že chyba ma snad byt v mingw. Tím si nejsem jistý. Za pomoc budu vdečný.

// system_clock example
#include <iostream>
#include <ctime>
#include <ratio>
#include <chrono>

int main ()
{
  using std::chrono::system_clock;

  std::chrono::duration<int,std::ratio<60*60*24> > one_day (1);

  system_clock::time_point today = system_clock::now();
  system_clock::time_point tomorrow = today + one_day;

  std::time_t tt;

  tt = system_clock::to_time_t ( today );
  std::cout << "today is: " << ctime(&tt);

  tt = system_clock::to_time_t ( tomorrow );
  std::cout << "tomorrow will be: " << ctime(&tt);

  return 0;
}
Nahlásit jako SPAM
IP: 94.230.146.–
PiranhaGreg0
Stálý člen
18. 10. 2015   #2
-
0
-

Asi by ti měla pomoct tato funkce. Co jsem zkoušel ten jejich example přepsat na 

#include <ctime>
#include <iostream>
#include <locale>
 
int main()
{
    std::locale::global(std::locale("cs_CZ.utf8"));
    std::time_t t = std::time(NULL);
    char mbstr[100];
    if (std::strftime(mbstr, sizeof(mbstr), "%A %c", std::localtime(&t))) {
        std::cout << mbstr << '\n';
    }
}

tak mi to vypsalo český datum ;-).

Nahlásit jako SPAM
IP: 147.32.126.–
polopes
~ Anonymní uživatel
7 příspěvků
18. 10. 2015   #3
-
0
-

aha tak me to po spusteni vypise tohle:

pouzivam codeblocks-13.12mingw-setup.exe

predpokladam ze mas visual studio, ze?

terminate called after throwing an instance of 'std::runtime_error'
  what():  locale::facet::_S_create_c_locale name not valid

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

Process returned 3 (0x3)   execution time : 10.300 s
Press any key to continue.
Nahlásit jako SPAM
IP: 94.230.146.–
PiranhaGreg0
Stálý člen
18. 10. 2015   #4
-
0
-

Jo, jasně, zapomněl jsem na to. Mám Linux a tam je to trochu jinak. Tady jsem to řešil, aby to bylo multiplatformní. Tedy pro Windows nastav locale místo cs_CZ.utf8 jen cs-CZ  .

Nahlásit jako SPAM
IP: 147.32.126.–
PiranhaGreg0
Stálý člen
18. 10. 2015   #5
-
0
-

Jinak na Windows musí být myslím nainstalovaný český jazykový balíček, jinak to spadne. Proto mám v tom odkazovaným příspěvku ten try catch...

Nahlásit jako SPAM
IP: 147.32.126.–
polopes
~ Anonymní uživatel
7 příspěvků
18. 10. 2015   #6
-
0
-

ach jo, to zase nikdo nebude mit doinstalovane, takze je to  na prd :(

kazdopadne diky za pomoc a objasneni cele zalezitosti...

Nahlásit jako SPAM
IP: 94.230.146.–
PiranhaGreg0
Stálý člen
18. 10. 2015   #7
-
0
-

Jak se to vezme no. V ČR má většina lidí český Windows a ten zbytek co ho má v angličtině možná ocení i to datum v angličtině.

Pak je tu samozřejmě docela snadná možnost napsat si vlastní funkci na převod. Např. 

const char * getMonthString(int month) {
	static const char * months[] = { 
		"ledna",
		"února",
		"března",
		"dubna",
		"května",
		"června",
		"července",
		"srpna",
		"září",
		"října",
		"listopadu",
		"prosince" };

	return months[month];
}
Nahlásit jako SPAM
IP: 147.32.126.–
polopes
~ Anonymní uživatel
7 příspěvků
18. 10. 2015   #8
-
0
-

mam cz verzi windows 7 a stejne mi to pise tu chybu, tak jsem myslel ze se musi jeste doinstalovat nejaka ta enterprise lokalizace dialogu atd...

Nahlásit jako SPAM
IP: 94.230.146.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý