C ++: n wcsftime () -funktio muuntaa annetun päivämäärän ja kellonajan tietystä kalenteriaikasta nollapäätteiseksi leveäksi merkkijonoksi muotomerkkijonon mukaan.
Wcsftime () -toiminto määritetään otsikkotiedostossa.
wcsftime () -prototyyppi
size_t wcsftime (wchar_t * str, size_t count, const wchar_t * muoto, const tm * aika);
Wcsftime () -toiminto vie neljä argumenttia: str, count, muoto ja aika.
Ajan osoittama päivämäärä- ja aikatieto muunnetaan nollapäätteiseksi leveäksi merkiksi muodon arvon perusteella ja tallennetaan laajaan ryhmään, johon str. Enintään laskutavut kirjoitetaan.
wcsftime () -parametrit
- str: Osoitin leveän merkkijonon ensimmäiseen elementtiin tuloksen tallentamiseksi.
- count: Kirjoitettavien leveiden merkkien enimmäismäärä.
- muoto: Nollapäätteisen leveän merkkijonon osoitin, joka määrittää muunnoksen muodon. Formaattimerkkijono koostuu muunnosmäärittimestä (alkaa%: lla ja mahdollisesti E: n tai O: n jälkeen) ja muista tavallisista leveistä merkeistä.
Tavalliset leveät merkit, mukaan lukien lopetettava tyhjä leveä merkki, kopioidaan sellaisenaan ulostuloleveään merkkijonoon. Wcsftime () -määritteetMuunnoksen määrittelijä Kuvaus Käytetyt kentät % Kirjoittaa merkin% n Kirjoittaa uuden rivin merkin t Kirjoittaa vaakasuoran välilehden merkin Vuosi Y Kirjoittaa 4 numeroa vuotta, esim. 2011 tm_vuosi EY Kirjoittaa 4 numeroa vuotta kielen vaihtoehtoisessa esityksessä tm_vuosi y Kirjoittaa viimeiset 2 numeroa vuodessa, alue (00, 99) tm_vuosi Oy Kirjoittaa vuoden kaksi viimeistä numeroa kielen vaihtoehtoisessa esityksessä tm_vuosi Ey Kirjoittaa vuoden korvauksena sijaintipaikan vaihtoehtoisesta kalenterijaksosta% EC (kieliversiosta riippuva) tm_vuosi C Kirjoittaa vuoden 2 ensimmäistä numeroa, alue (00,99) tm_vuosi EY Kirjoittaa perusvuoden (jakson) nimen sijainnin vaihtoehtoiseen esitykseen, tm_vuosi G Kirjoittaa ISO 8601 -viikkopohjaisen vuoden, eli vuoden, joka sisältää määritetyn viikon. tm_vuosi, tm_wday, tm_yday g Kirjoittaa viimeiset kaksi numeroa ISO 8601 -viikkopohjaista vuotta eli vuoden, joka sisältää määritetyn viikon (alue (00,99)). tm_vuosi, tm_wday, tm_yday Kuukausi b Kirjoittaa lyhennetyn kuukauden nimen, esim. Tammikuu tm_mon h Sama kuin b tm_mon B Kirjoittaa koko kuukauden nimen, esim. Tammikuu tm_mon m Kirjoittaa kuukauden desimaalilukuna, alue (01,12) tm_mon Om Kirjoittaa kuukauden käyttäen kielen vaihtoehtoista numeerista järjestelmää tm_mon Viikko U Kirjoittaa vuoden viikon desimaalilukuna välillä 00–53 (sunnuntai on viikon ensimmäinen päivä) tm_vuosi, tm_wday, tm_yday OU Kirjoitetaan vuoden viikko prosentteina% U käyttäen vaihtoehtoista numeerista järjestelmää tm_vuosi, tm_wday, tm_yday W Kirjoittaa vuoden viikon desimaalilukuna välillä 00–53 (maanantai on viikon ensimmäinen päivä) tm_vuosi, tm_wday, tm_yday OW Kirjoitetaan vuoden viikko prosentteina% W käyttäen vaihtoehtoista numeerista järjestelmää tm_vuosi, tm_wday, tm_yday V Kirjoittaa ISO 8601 -viikon vuodessa (alue (01,53)). tm_vuosi, tm_wday, tm_yday OV Kirjoittaa vuoden viikon,% V: llä, käyttämällä vaihtoehtoista numeerista järjestelmää tm_vuosi, tm_wday, tm_yday Vuoden / kuukauden päivä j Kirjoittaa vuoden päivän desimaalilukuna, välin (001 366) tm_yday d Kirjoittaa kuukauden päivän desimaalilukuna, alue (01,31) tm_päivä Od Kirjoittaa kuukauden päivän prosenttimäärällä% d käyttäen vaihtoehtoista numeerista järjestelmää tm_päivä e Kirjoittaa kuukauden päivän desimaalilukuna, alue (1,31) tm_päivä Oe Kirjoittaa kuukauden päivän prosentteina% e käyttäen vaihtoehtoista numeerista järjestelmää tm_päivä Viikonpäivä a Kirjoittaa lyhennetyn viikonpäivän nimen, esim. Pe (kielikohtainen) tm_wday A Kirjoittaa koko arkipäivän nimen, esim. Perjantai (kielikohtainen) tm_wday w Kirjoittaa viikonpäivän desimaalilukuna, alue (0-6) (sunnuntai on 0) tm_wday Oi Kirjoittaa viikonpäivän prosentteina% w käyttäen vaihtoehtoista numeerista järjestelmää tm_wday u Kirjoittaa viikonpäivän desimaalilukuna, jossa maanantai on 1 (ISO 8601 -muoto), alue (1-7) tm_wday Ou Kirjoittaa viikonpäivän prosentteina% u käyttäen vaihtoehtoista numeerista järjestelmää tm_wday Tunti, minuutti, sekunti H Kirjoittaa tunnin desimaalilukuna, alue (00,23) tm_tunti VAI NIIN Kirjoittaa tunnin% H: na käyttäen vaihtoehtoista numeerista järjestelmää tm_tunti Minä Kirjoittaa tunnin desimaalilukuna, alueen (01,12) tm_tunti OI Kirjoittaa tunnin prosentteina% I käyttäen vaihtoehtoista numeerista järjestelmää tm_tunti M Kirjoittaa minuutin desimaalilukuna, alue (00,59) tm_min OM Kirjoittaa minuutit prosentteina M käyttäen vaihtoehtoista numeerista järjestelmää tm_min S Kirjoitetaan toisena desimaalilukuna, alue (00,60) tm_sek Käyttöjärjestelmä Kirjoitetaan toisena% S: llä käyttäen vaihtoehtoista numeerista järjestelmää tm_sek Muu c Kirjoittaa normaalin päivämäärä- ja aikamerkkijonon, esim. Su 17. lokakuuta 04:41:13 2010 (aluekohtainen) kaikki Ec Kirjoittaa kielen vaihtoehtoisen päivämäärä- ja aikamerkkijonon kaikki x Kirjoittaa lokalisoidun päivämäärän esityksen (alueesta riippuva) kaikki Esim Kirjoittaa kielen vaihtoehtoisen päivämäärän esityksen kaikki X Kirjoittaa lokalisoidun ajan esityksen (riippuu kielestä) kaikki EX Kirjoittaa kielen vaihtoehtoisen ajanesityksen kaikki D Vastaa "% m /% d /% y" tm_mon, tm_mday, tm_year F Vastaa "% Y-% m-% d" tm_mon, tm_mday, tm_year r Kirjoittaa lokalisoidun 12 tunnin kellonajan tm_tunti, tm_min, tm_sek R Vastaa "% H:% M" tm_tunti, tm_min T Vastaa "% H:% M:% S tm_tunti, tm_min, tm_sek P Kirjoittaa lokalisoidun am tai pm (lokaleista riippuva) tm_tunti z kirjoittaa siirtymän UTC: stä ISO 8601 -muodossa (esim. -0545) tai ei merkkejä, jos aikavyöhyketietoja ei ole käytettävissä tm_isdst Z Kirjoittaa aikavyöhykkeen nimen tai lyhenteen tai ei mitään, jos aikavyöhyketietoja ei ole saatavana (riippuu kielialueesta) tm_isdst - aika: muunnettava päivämäärä ja kellonaika.
wcsftime () Palautusarvo
- Menestyksessä wcsftime () -funktio palauttaa leveään merkistöön kirjoitetun leveän merkin lukumäärän, johon str on osoittanut loppuosan L ' 0'.
- Jos määrä saavutettiin ennen kuin koko merkkijono voidaan tallentaa, 0 palautetaan ja sisältöä ei määritellä.
Esimerkki: Kuinka wcsftime () -toiminto toimii?
#include #include #include using namespace std; int main() ( time_t curr_time; tm * curr_tm; wchar_t date_string(100); wchar_t time_string(100); time(&curr_time); curr_tm = localtime(&curr_time); wcsftime(date_string, 50, L"Today is %B %d, %Y", curr_tm); wcsftime(time_string, 50, L"Current time is %T", curr_tm); wcout << date_string << endl; wcout << time_string << endl; return 0; )
Kun suoritat ohjelmaa, tulos on:
Tänään on 21. huhtikuuta 2017. Kellonaika on 14:42:45