public: add parsing build date from ISO-8601 alike format
This commit is contained in:
parent
151e7fe37b
commit
8f257cc331
3 changed files with 33 additions and 3 deletions
|
@ -13,6 +13,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
#include "crtlib.h"
|
#include "crtlib.h"
|
||||||
#include "buildenums.h"
|
#include "buildenums.h"
|
||||||
|
|
||||||
|
@ -38,9 +39,31 @@ int Q_buildnum_date( const char *date )
|
||||||
b = d + (int)((y - 1) * 365.25f );
|
b = d + (int)((y - 1) * 365.25f );
|
||||||
|
|
||||||
if((( y % 4 ) == 0 ) && m > 1 )
|
if((( y % 4 ) == 0 ) && m > 1 )
|
||||||
{
|
|
||||||
b += 1;
|
b += 1;
|
||||||
|
b -= 41728; // Apr 1 2015
|
||||||
|
|
||||||
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Q_buildnum_iso( const char *date )
|
||||||
|
{
|
||||||
|
int y, m, d, b, i;
|
||||||
|
|
||||||
|
if( sscanf( date, "%d-%d-%d", &y, &m, &d ) != 3 || y <= 1900 || m <= 0 || d <= 0 )
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
// fixup day and month
|
||||||
|
m--;
|
||||||
|
d--;
|
||||||
|
|
||||||
|
for( i = 0; i < m; i++ )
|
||||||
|
d += mond[i];
|
||||||
|
|
||||||
|
y -= 1900;
|
||||||
|
b = d + (int)((y - 1) * 365.25f );
|
||||||
|
|
||||||
|
if((( y % 4 ) == 0 ) && m > 1 )
|
||||||
|
b += 1;
|
||||||
b -= 41728; // Apr 1 2015
|
b -= 41728; // Apr 1 2015
|
||||||
|
|
||||||
return b;
|
return b;
|
||||||
|
|
|
@ -57,6 +57,7 @@ enum
|
||||||
//
|
//
|
||||||
int Q_buildnum( void );
|
int Q_buildnum( void );
|
||||||
int Q_buildnum_date( const char *date );
|
int Q_buildnum_date( const char *date );
|
||||||
|
int Q_buildnum_iso( const char *date );
|
||||||
int Q_buildnum_compat( void );
|
int Q_buildnum_compat( void );
|
||||||
const char *Q_PlatformStringByID( const int platform );
|
const char *Q_PlatformStringByID( const int platform );
|
||||||
const char *Q_buildos( void );
|
const char *Q_buildos( void );
|
||||||
|
|
|
@ -180,8 +180,14 @@ int main( void )
|
||||||
if( Q_buildnum_date( "Apr 02 2015" ) != 1 )
|
if( Q_buildnum_date( "Apr 02 2015" ) != 1 )
|
||||||
return 201;
|
return 201;
|
||||||
|
|
||||||
if( Q_buildnum_date( "Apr 17 2023" ) != 2938 )
|
if( Q_buildnum_date( "Apr 02 2015" ) != Q_buildnum_iso( "2015-04-02 21:19:10 +0300" ))
|
||||||
return 202;
|
return 202;
|
||||||
|
|
||||||
|
if( Q_buildnum_date( "Apr 17 2023" ) != 2938 )
|
||||||
|
return 203;
|
||||||
|
|
||||||
|
if( Q_buildnum_date( "Apr 17 2023" ) != Q_buildnum_iso( "2023-04-17 21:19:10 +0300" ))
|
||||||
|
return 204;
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue