1 /*---------------------------------------------------------------------------* 2 3 Copyright (C) 2012 Nintendo. All rights reserved. 4 5 These coded instructions, statements, and computer programs contain 6 proprietary information of Nintendo of America Inc. and/or Nintendo 7 Company Ltd., and are protected by Federal copyright law. They may 8 not be disclosed to third parties or copied or duplicated in any form, 9 in whole or in part, without the prior written consent of Nintendo. 10 11 *---------------------------------------------------------------------------*/ 12 13 #ifndef NN_ACT_API_TIME_ZONE_H_ 14 #define NN_ACT_API_TIME_ZONE_H_ 15 16 17 #include "act_TypesTimeZone.h" 18 19 20 #ifdef __cplusplus 21 22 namespace nn 23 { 24 namespace act 25 { 26 27 //! @addtogroup nn_act_api 28 //! @{ 29 30 //! @name Getting Current Account Information 31 //! @{ 32 33 /*! 34 @brief Gets the name of the time zone set for the current account. 35 36 Gets the time zone name in the <tt>tz database</tt> format for the Nintendo Network Account linked to the current account. 37 Note that this function does not trigger any communication because it retrieves the value from the local cache. @n 38 39 Pass a pointer to a buffer with at least as many elements as <tt>ACT_TIME_ZONE_ID_SIZE</tt> for <span class="argument">pTimeZoneId</span>. @n 40 @n 41 When it is not a network account, the function succeeds and a blank string is copied to <span class="argument">pTimeZoneId</span>. @n 42 @n 43 If the function fails, the value set in the buffer is undefined. 44 @param[out] pTimeZoneId Specifies an out pointer to the buffer that stores the time zone name. 45 @return Returns the execution result of the function. If the result is used for branching, follow the method described in <tt>@ref nn_act_communication_errorhandling</tt> <i>Error Handling</i>. 46 @retval ResultSuccess Succeeded. @n 47 @retval ResultNotInitialized Indicates that the account library has not been initialized. @n 48 @retval ResultInvalidPointer Indicates that an invalid pointer (such as a <tt>NULL</tt> pointer) was passed as an argument. @n 49 50 51 */ 52 Result GetTimeZoneId( char* pTimeZoneId ); 53 54 /*! 55 @brief Gets the time difference for the time zone set for the current account. 56 57 Gets the time difference from UTC in microseconds for the time zone set in the Nintendo Network Account linked to the current account. 58 Note that this function does not trigger any communication because it retrieves the value from the local cache. @n 59 60 Daylight Saving Time is taken into consideration in the time difference, but note that depending on when the local cache is updated, the change might not be reflected immediately after the start and end of Daylight Saving Time. 61 Also note that when applied to past and future dates and times, there is a high possibility that the time difference value will not match the value on the actual date. 62 If you require exact time difference data, we recommend using an independent server or other service to resolve the time difference based on the time zone name that can be retrieved with the <tt>@ref nn::act::GetTimeZoneId</tt> function. 63 64 @return Returns a value in microseconds for the difference from UTC for the time zone set in the current account. 65 If this function is called on a non-network account or while the account library is uninitialized, <tt>0</tt> is returned. 66 */ 67 s64 GetUtcOffset( void ); 68 69 //! @} 70 //! @name Getting Other Account Information 71 //! @{ 72 73 /*! 74 @brief Gets the name of the time zone set for the account in the specified slot. 75 76 Gets the time zone name in the <tt>tz database</tt> format for the Nintendo Network Account linked to the console account in the specified slot. 77 Note that this function does not trigger any communication because it retrieves the value from the local cache. @n 78 79 Pass a pointer to a buffer with at least as many elements as <tt>ACT_TIME_ZONE_ID_SIZE</tt> for <span class="argument">pTimeZoneId</span>. @n 80 @n 81 When it is not a network account, the function succeeds and a blank string is copied to <span class="argument">pTimeZoneId</span>. @n 82 @n 83 If the function fails, the value set in the buffer is undefined. 84 85 @param[out] pTimeZoneId Specifies an out pointer to the buffer that stores the time zone name. 86 @param[in] slotNo Specifies the slot number. 87 88 @return Returns the execution result of the function. If the result is used for branching, follow the method described in <tt>@ref nn_act_communication_errorhandling</tt> <i>Error Handling</i>. 89 @retval ResultSuccess Succeeded. @n 90 @retval ResultNotInitialized Indicates that the account library has not been initialized. @n 91 @retval ResultInvalidPointer Indicates that an invalid pointer (such as a <tt>NULL</tt> pointer) was passed as an argument. @n 92 @retval ResultAccountNotFound Indicates that the account was not found in the specified slot. @n 93 */ 94 Result GetTimeZoneIdEx( char* pTimeZoneId, u8 slotNo ); 95 96 /*! 97 @brief Gets the time difference for the time zone set for the account in the specified slot. 98 99 Gets the time difference from UTC in microseconds for the time zone set in the Nintendo Network Account linked to the console account in the specified slot. 100 Note that this function does not trigger any communication because it retrieves the value from the local cache. @n 101 102 Daylight Saving Time is taken into consideration in the time difference, but note that depending on when the local cache is updated, the change might not be reflected immediately after the start and end of Daylight Saving Time. 103 Also note that when applied to past and future dates and times, there is a high possibility that the time difference value will not match the value on the actual date. 104 If you require exact time difference data, we recommend using an independent server or other service to resolve the time difference based on the time zone name that can be retrieved with the <tt>@ref nn::act::GetTimeZoneIdEx</tt> function. 105 106 When it is not a network account, the function succeeds and <tt>0</tt> is copied to <span class="argument">pUtcOffset</span>. @n 107 108 If the function fails, the value set in the buffer is undefined. 109 110 @param[out] pUtcOffset Sets an out pointer to the buffer that stores the time difference. 111 @param[in] slotNo Specifies the slot number. 112 113 @return Returns the execution result of the function. If the result is used for branching, follow the method described in <tt>@ref nn_act_communication_errorhandling</tt> <i>Error Handling</i>. 114 @retval ResultSuccess Succeeded. @n 115 @retval ResultNotInitialized Indicates that the account library has not been initialized. @n 116 @retval ResultInvalidPointer Indicates that an invalid pointer (such as a <tt>NULL</tt> pointer) was passed as an argument. @n 117 @retval ResultAccountNotFound Indicates that the account was not found in the specified slot. @n 118 */ 119 Result GetUtcOffsetEx( s64* pUtcOffset, u8 slotNo ); 120 121 //! @} 122 123 //! @} 124 125 } 126 } 127 128 #endif 129 130 131 #endif // NN_ACT_API_PRIVATE_H_ 132