Personal tools
You are here: Home Projects C++ Cfront releases Release 3.0.3 source libSC Time tm tmmake.c
Document Actions

tmmake.c

by Michael L Powell last modified 2007-01-26 03:24

Click here to get the file

Size 1.3 kB - File type text/plain

File contents

/*ident	"@(#)Time:tm/tmmake.c	3.1" */
/******************************************************************************
*
* C++ Standard Components, Release 3.0.
*
* Copyright (c) 1991, 1992 AT&T and Unix System Laboratories, Inc.
* Copyright (c) 1988, 1989, 1990 AT&T.  All Rights Reserved.
*
* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T and Unix System
* Laboratories, Inc.  The copyright notice above does not evidence
* any actual or intended publication of such source code.
*
******************************************************************************/

#include <tm.h>

/*
 * return tm struct for clock
 * leap seconds accounted for in return value
 */

struct tm* tmmake_ATTLC(time_t* clock) {
    register struct tm*	tp;
    register struct tl*	lp;
    int			leapsec;
    time_t		now;

    tmset();
    if (clock) now = *clock;
    else (void)time(&now);
    leapsec = 0;
    if(
	(tm_flags_ATTLC & (TM_ADJUST|TM_LEAP)) == (TM_ADJUST|TM_LEAP) && 
	now > 0
    ){
	for( lp = &tm_leap_ATTLC[0]; now < lp->time; lp++ );

	if(lp->total){

	    if(
		now == lp->time && 
		(leapsec = (lp->total-(lp+1)->total)) < 0
	    ){ 
		leapsec = 0;
	    }
	    now -= lp->total;
	}
    }
    if (tm_flags_ATTLC & TM_UTC)
	tp = gmtime_ATTLC(&now);
    else
	tp = localtime_ATTLC(&now);
    tp->tm_sec += leapsec;
    return(tp);
}
« April 2024 »
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: