Domanda

Nella biblioteca della data di spinta, esiste una funzione di utilità per convertire le corde brevi del mese (ad esempio Jan, Feb, Mar, APR) per aumentare :: Gregorian :: Greg_month Tipo? La documentazione per la biblioteca non è eccezionale e non riesco a vedere nulla nelle intestazioni.

È stato utile?

Soluzione

Un lavoro hacky in giro potrebbe essere:

#include <iostream>
#include <boost/date_time/gregorian/gregorian.hpp>

int main(void)
{
  auto ptr = boost::gregorian::greg_month::get_month_map_ptr();

  if (ptr)
  {
    auto it = ptr->begin();
    for(; it != ptr->end(); ++it)
    {
      std::cout << it->first << " " << it->second << '\n';
    }
  }
}

Questa mappa contiene una mappatura tra tutti i nomi brevi/lunghi e il breve necessario per creare un greg_month esempio. Ho solo bisogno di creare un po 'di involucro attorno a esso ...

Per la scoperta di Graeme, c'è una funzione di convenienza che lo avvolge già boost::date_time::month_str_to_ushort<>

Altri suggerimenti

Sì, ci sono sfaccettature per la data di spinta che possono essere utilizzate per creare locali e mettere in flussi.

Fai attenzione, però, se hai intenzione di stampare o analizzare un gran numero di date e orari che non si crea la sfaccettatura e la localizzazione per ognuno di quelli che analizzi.

Aspetto qui Per la documentazione sull'inserimento di date. Alcuni dei loro esempi usano nomi di brevi mesi, che sembra avere %b come è Specificatore di formato

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top