• Home
  • Raw
  • Download

Lines Matching +full:offset +full:- +full:y

18  * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 * Boston, MA 02111-1307, USA.
23 * Converts the calendar time to broken-down time representation
24 * Based on code from glibc-2.6
26 * 2009-7-14:
27 * Moved from glibc-2.6 to kernel by Zhaolei<zhaolei@cn.fujitsu.com>
45 return a / b - (a % b < 0); in math_div()
51 long leaps1 = math_div(y1 - 1, 4) - math_div(y1 - 1, 100) in leaps_between()
52 + math_div(y1 - 1, 400); in leaps_between()
53 long leaps2 = math_div(y2 - 1, 4) - math_div(y2 - 1, 100) in leaps_between()
54 + math_div(y2 - 1, 400); in leaps_between()
55 return leaps2 - leaps1; in leaps_between()
58 /* How many days come before each month (0-12). */
70 * time64_to_tm - converts the calendar time to local broken-down time
74 * @offset offset seconds adding to totalsecs.
75 * @result pointer to struct tm variable to receive broken-down time
77 void time64_to_tm(time64_t totalsecs, int offset, struct tm *result) in time64_to_tm() argument
79 long days, rem, y; in time64_to_tm() local
85 rem += offset; in time64_to_tm()
88 --days; in time64_to_tm()
91 rem -= SECS_PER_DAY; in time64_to_tm()
95 result->tm_hour = rem / SECS_PER_HOUR; in time64_to_tm()
97 result->tm_min = rem / 60; in time64_to_tm()
98 result->tm_sec = rem % 60; in time64_to_tm()
101 result->tm_wday = (4 + days) % 7; in time64_to_tm()
102 if (result->tm_wday < 0) in time64_to_tm()
103 result->tm_wday += 7; in time64_to_tm()
105 y = 1970; in time64_to_tm()
107 while (days < 0 || days >= (__isleap(y) ? 366 : 365)) { in time64_to_tm()
109 long yg = y + math_div(days, 365); in time64_to_tm()
111 /* Adjust DAYS and Y to match the guessed year. */ in time64_to_tm()
112 days -= (yg - y) * 365 + leaps_between(y, yg); in time64_to_tm()
113 y = yg; in time64_to_tm()
116 result->tm_year = y - 1900; in time64_to_tm()
118 result->tm_yday = days; in time64_to_tm()
120 ip = __mon_yday[__isleap(y)]; in time64_to_tm()
121 for (y = 11; days < ip[y]; y--) in time64_to_tm()
123 days -= ip[y]; in time64_to_tm()
125 result->tm_mon = y; in time64_to_tm()
126 result->tm_mday = days + 1; in time64_to_tm()