2009-09-12 19 views
5

से वर्ष प्राप्त करें मैं एक मौजूदा प्रोग्राम को सी ++ में परिवर्तित कर रहा हूं और यहां सिबबेस टाइमस्टैम्प में हेरफेर करने की आवश्यकता है। इन टाइमस्टैम्प में दिनांक और समय की जानकारी होती है, जो मेरे ज्ञान के लिए boost::posix_time::ptime चर द्वारा सबसे अच्छा संभाला जा सकता है। कोड में कुछ स्थानों में मुझे वर्ष को चर से प्राप्त करने की आवश्यकता है।बूस्ट पीटा

मेरा प्रश्न है: कैसे मैं सबसे अधिक कुशलता से एक बढ़ावा ptime चर से साल निकाल सकते हैं? नीचे एक नमूना कार्यक्रम है जिसमें तीन कोड की रेखाएं होती हैं, अतिरिक्त ostringstream चर के ओवरहेड और boost::gregorian::date चर के साथ।

बढ़ावा प्रलेखन के अनुसार:

कक्षा ptime एक समय बिंदु के तारीख हिस्से को इंटरफेस के लिए gregorian::date पर निर्भर है

तथापि gregorian::date एक आधार वर्ग होना प्रतीत नहीं होता है ptime का। किसी तरह मैं यहाँ कुछ याद कर रहा हूँ।

क्या ptime से वर्ष निकालने का कोई आसान तरीका नहीं है?

नमूना:

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

int main() 
{ 
    boost::posix_time::ptime t(boost::posix_time::second_clock::local_time()); 
    boost::gregorian::date d = t.date(); 
    std::ostringstream os; os << d.year(); 
    std::cout << os.str() << std::endl; 
    return 0; 
} 

उत्तर

5

ostringstream जाएं। अन्यथा, आपको "नेमस्पेस का उपयोग करके ..."

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

int main() 
{ 
    using namespace boost::posix_time; 
    std::cout << second_clock::local_time().date().year() << std::endl; 
    return 0; 
} 
से लाभ हो सकता है