亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? getdate.c

?? Linux下文件工具。
?? C
?? 第 1 頁 / 共 5 頁
字號(hào):
to_year (textint textyear){  int year = textyear.value;  if (year < 0)    year = -year;  /* XPG4 suggests that years 00-68 map to 2000-2068, and     years 69-99 map to 1969-1999.  */  if (textyear.digits == 2)    year += year < 69 ? 2000 : 1900;  return year;}static table const *lookup_zone (parser_control const *pc, char const *name){  table const *tp;  /* Try local zone abbreviations first; they're more likely to be right.  */  for (tp = pc->local_time_zone_table; tp->name; tp++)    if (strcmp (name, tp->name) == 0)      return tp;  for (tp = time_zone_table; tp->name; tp++)    if (strcmp (name, tp->name) == 0)      return tp;  return 0;}#if ! HAVE_TM_GMTOFF/* Yield the difference between *A and *B,   measured in seconds, ignoring leap seconds.   The body of this function is taken directly from the GNU C Library;   see src/strftime.c.  */static inttm_diff (struct tm const *a, struct tm const *b){  /* Compute intervening leap days correctly even if year is negative.     Take care to avoid int overflow in leap day calculations,     but it's OK to assume that A and B are close to each other.  */  int a4 = (a->tm_year >> 2) + (TM_YEAR_BASE >> 2) - ! (a->tm_year & 3);  int b4 = (b->tm_year >> 2) + (TM_YEAR_BASE >> 2) - ! (b->tm_year & 3);  int a100 = a4 / 25 - (a4 % 25 < 0);  int b100 = b4 / 25 - (b4 % 25 < 0);  int a400 = a100 >> 2;  int b400 = b100 >> 2;  int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400);  int years = a->tm_year - b->tm_year;  int days = (365 * years + intervening_leap_days	      + (a->tm_yday - b->tm_yday));  return (60 * (60 * (24 * days + (a->tm_hour - b->tm_hour))		+ (a->tm_min - b->tm_min))	  + (a->tm_sec - b->tm_sec));}#endif /* ! HAVE_TM_GMTOFF */static table const *lookup_word (parser_control const *pc, char *word){  char *p;  char *q;  size_t wordlen;  table const *tp;  int i;  int abbrev;  /* Make it uppercase.  */  for (p = word; *p; p++)    if (ISLOWER ((unsigned char) *p))      *p = toupper ((unsigned char) *p);  for (tp = meridian_table; tp->name; tp++)    if (strcmp (word, tp->name) == 0)      return tp;  /* See if we have an abbreviation for a month. */  wordlen = strlen (word);  abbrev = wordlen == 3 || (wordlen == 4 && word[3] == '.');  for (tp = month_and_day_table; tp->name; tp++)    if ((abbrev ? strncmp (word, tp->name, 3) : strcmp (word, tp->name)) == 0)      return tp;  if ((tp = lookup_zone (pc, word)))    return tp;  if (strcmp (word, dst_table[0].name) == 0)    return dst_table;  for (tp = time_units_table; tp->name; tp++)    if (strcmp (word, tp->name) == 0)      return tp;  /* Strip off any plural and try the units table again. */  if (word[wordlen - 1] == 'S')    {      word[wordlen - 1] = '\0';      for (tp = time_units_table; tp->name; tp++)	if (strcmp (word, tp->name) == 0)	  return tp;      word[wordlen - 1] = 'S';	/* For "this" in relative_time_table.  */    }  for (tp = relative_time_table; tp->name; tp++)    if (strcmp (word, tp->name) == 0)      return tp;  /* Military time zones. */  if (wordlen == 1)    for (tp = military_table; tp->name; tp++)      if (word[0] == tp->name[0])	return tp;  /* Drop out any periods and try the time zone table again. */  for (i = 0, p = q = word; (*p = *q); q++)    if (*q == '.')      i = 1;    else      p++;  if (i && (tp = lookup_zone (pc, word)))    return tp;  return 0;}static intyylex (YYSTYPE *lvalp, parser_control *pc){  unsigned char c;  int count;  for (;;)    {      while (c = *pc->input, ISSPACE (c))	pc->input++;      if (ISDIGIT (c) || c == '-' || c == '+')	{	  char const *p;	  int sign;	  int value;	  if (c == '-' || c == '+')	    {	      sign = c == '-' ? -1 : 1;	      c = *++pc->input;	      if (! ISDIGIT (c))		/* skip the '-' sign */		continue;	    }	  else	    sign = 0;	  p = pc->input;	  value = 0;	  do	    {	      value = 10 * value + c - '0';	      c = *++p;	    }	  while (ISDIGIT (c));	  lvalp->textintval.value = sign < 0 ? -value : value;	  lvalp->textintval.digits = p - pc->input;	  pc->input = p;	  return sign ? tSNUMBER : tUNUMBER;	}      if (ISALPHA (c))	{	  char buff[20];	  char *p = buff;	  table const *tp;	  do	    {	      if (p < buff + sizeof buff - 1)		*p++ = c;	      c = *++pc->input;	    }	  while (ISALPHA (c) || c == '.');	  *p = '\0';	  tp = lookup_word (pc, buff);	  if (! tp)	    return '?';	  lvalp->intval = tp->value;	  return tp->type;	}      if (c != '(')	return *pc->input++;      count = 0;      do	{	  c = *pc->input++;	  if (c == '\0')	    return c;	  if (c == '(')	    count++;	  else if (c == ')')	    count--;	}      while (count > 0);    }}/* Do nothing if the parser reports an error.  */static intyyerror (char *s ATTRIBUTE_UNUSED){  return 0;}/* Parse a date/time string P.  Return the corresponding time_t value,   or (time_t) -1 if there is an error.  P can be an incomplete or   relative time specification; if so, use *NOW as the basis for the   returned time.  */time_tget_date (const char *p, const time_t *now){  time_t Start = now ? *now : time (0);  struct tm *tmp = localtime (&Start);  struct tm tm;  struct tm tm0;  parser_control pc;  if (! tmp)    return -1;  pc.input = p;  pc.year.value = tmp->tm_year + TM_YEAR_BASE;  pc.year.digits = 4;  pc.month = tmp->tm_mon + 1;  pc.day = tmp->tm_mday;  pc.hour = tmp->tm_hour;  pc.minutes = tmp->tm_min;  pc.seconds = tmp->tm_sec;  tm.tm_isdst = tmp->tm_isdst;  pc.meridian = MER24;  pc.rel_seconds = 0;  pc.rel_minutes = 0;  pc.rel_hour = 0;  pc.rel_day = 0;  pc.rel_month = 0;  pc.rel_year = 0;  pc.dates_seen = 0;  pc.days_seen = 0;  pc.rels_seen = 0;  pc.times_seen = 0;  pc.local_zones_seen = 0;  pc.zones_seen = 0;#if HAVE_TM_ZONE  pc.local_time_zone_table[0].name = tmp->tm_zone;  pc.local_time_zone_table[0].type = tLOCAL_ZONE;  pc.local_time_zone_table[0].value = tmp->tm_isdst;  pc.local_time_zone_table[1].name = 0;  /* Probe the names used in the next three calendar quarters, looking     for a tm_isdst different from the one we already have.  */  {    int quarter;    for (quarter = 1; quarter <= 3; quarter++)      {	time_t probe = Start + quarter * (90 * 24 * 60 * 60);	struct tm *probe_tm = localtime (&probe);	if (probe_tm && probe_tm->tm_zone	    && probe_tm->tm_isdst != pc.local_time_zone_table[0].value)	  {	      {		pc.local_time_zone_table[1].name = probe_tm->tm_zone;		pc.local_time_zone_table[1].type = tLOCAL_ZONE;		pc.local_time_zone_table[1].value = probe_tm->tm_isdst;		pc.local_time_zone_table[2].name = 0;	      }	    break;	  }      }  }#else#if HAVE_TZNAME  {# ifndef tzname    extern char *tzname[];# endif    int i;    for (i = 0; i < 2; i++)      {	pc.local_time_zone_table[i].name = tzname[i];	pc.local_time_zone_table[i].type = tLOCAL_ZONE;	pc.local_time_zone_table[i].value = i;      }    pc.local_time_zone_table[i].name = 0;  }#else  pc.local_time_zone_table[0].name = 0;#endif#endif  if (pc.local_time_zone_table[0].name && pc.local_time_zone_table[1].name      && ! strcmp (pc.local_time_zone_table[0].name,		   pc.local_time_zone_table[1].name))    {      /* This locale uses the same abbrevation for standard and	 daylight times.  So if we see that abbreviation, we don't	 know whether it's daylight time.  */      pc.local_time_zone_table[0].value = -1;      pc.local_time_zone_table[1].name = 0;    }  if (yyparse (&pc) != 0      || 1 < pc.times_seen || 1 < pc.dates_seen || 1 < pc.days_seen      || 1 < (pc.local_zones_seen + pc.zones_seen)      || (pc.local_zones_seen && 1 < pc.local_isdst))    return -1;  tm.tm_year = to_year (pc.year) - TM_YEAR_BASE + pc.rel_year;  tm.tm_mon = pc.month - 1 + pc.rel_month;  tm.tm_mday = pc.day + pc.rel_day;  if (pc.times_seen || (pc.rels_seen && ! pc.dates_seen && ! pc.days_seen))    {      tm.tm_hour = to_hour (pc.hour, pc.meridian);      if (tm.tm_hour < 0)	return -1;      tm.tm_min = pc.minutes;      tm.tm_sec = pc.seconds;    }  else    {      tm.tm_hour = tm.tm_min = tm.tm_sec = 0;    }  /* Let mktime deduce tm_isdst if we have an absolute time stamp,     or if the relative time stamp mentions days, months, or years.  */  if (pc.dates_seen | pc.days_seen | pc.times_seen | pc.rel_day      | pc.rel_month | pc.rel_year)    tm.tm_isdst = -1;  /* But if the input explicitly specifies local time with or without     DST, give mktime that information.  */  if (pc.local_zones_seen)    tm.tm_isdst = pc.local_isdst;  tm0 = tm;  Start = mktime (&tm);  if (Start == (time_t) -1)    {      /* Guard against falsely reporting errors near the time_t boundaries         when parsing times in other time zones.  For example, if the min         time_t value is 1970-01-01 00:00:00 UTC and we are 8 hours ahead         of UTC, then the min localtime value is 1970-01-01 08:00:00; if         we apply mktime to 1970-01-01 00:00:00 we will get an error, so         we apply mktime to 1970-01-02 08:00:00 instead and adjust the time         zone by 24 hours to compensate.  This algorithm assumes that         there is no DST transition within a day of the time_t boundaries.  */      if (pc.zones_seen)	{	  tm = tm0;	  if (tm.tm_year <= EPOCH_YEAR - TM_YEAR_BASE)	    {	      tm.tm_mday++;	      pc.time_zone += 24 * 60;	    }	  else	    {	      tm.tm_mday--;	      pc.time_zone -= 24 * 60;	    }	  Start = mktime (&tm);	}      if (Start == (time_t) -1)	return Start;    }  if (pc.days_seen && ! pc.dates_seen)    {      tm.tm_mday += ((pc.day_number - tm.tm_wday + 7) % 7		     + 7 * (pc.day_ordinal - (0 < pc.day_ordinal)));      tm.tm_isdst = -1;      Start = mktime (&tm);      if (Start == (time_t) -1)	return Start;    }  if (pc.zones_seen)    {      int delta = pc.time_zone * 60;#ifdef HAVE_TM_GMTOFF      delta -= tm.tm_gmtoff;#else      struct tm *gmt = gmtime (&Start);      if (! gmt)	return -1;      delta -= tm_diff (&tm, gmt);#endif      if ((Start < Start - delta) != (delta < 0))	return -1;	/* time_t overflow */      Start -= delta;    }  /* Add relative hours, minutes, and seconds.  Ignore leap seconds;     i.e. "+ 10 minutes" means 600 seconds, even if one of them is a     leap second.  Typically this is not what the user wants, but it's     too hard to do it the other way, because the time zone indicator     must be applied before relative times, and if mktime is applied     again the time zone will be lost.  */  {    time_t t0 = Start;    long d1 = 60 * 60 * (long) pc.rel_hour;    time_t t1 = t0 + d1;    long d2 = 60 * (long) pc.rel_minutes;    time_t t2 = t1 + d2;    int d3 = pc.rel_seconds;    time_t t3 = t2 + d3;    if ((d1 / (60 * 60) ^ pc.rel_hour)	| (d2 / 60 ^ pc.rel_minutes)	| ((t0 + d1 < t0) ^ (d1 < 0))	| ((t1 + d2 < t1) ^ (d2 < 0))	| ((t2 + d3 < t2) ^ (d3 < 0)))      return -1;    Start = t3;  }  return Start;}#if TEST#include <stdio.h>intmain (int ac, char **av){  char buff[BUFSIZ];  time_t d;  printf ("Enter date, or blank line to exit.\n\t> ");  fflush (stdout);  buff[BUFSIZ - 1] = 0;  while (fgets (buff, BUFSIZ - 1, stdin) && buff[0])    {      d = get_date (buff, 0);      if (d == (time_t) -1)	printf ("Bad format - couldn't convert.\n");      else	printf ("%s", ctime (&d));      printf ("\t> ");      fflush (stdout);    }  return 0;}#endif /* defined TEST */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色图清纯唯美| 99久久精品国产一区| 在线观看亚洲专区| 日本一区二区免费在线观看视频| 一区二区三区91| 成人三级伦理片| 日韩女优电影在线观看| 亚洲综合网站在线观看| 丁香六月综合激情| 精品三级在线观看| 午夜欧美电影在线观看| 91蜜桃在线观看| 国产色产综合色产在线视频| 天天综合网 天天综合色| 色综合久久久久综合体桃花网| 久久中文娱乐网| 免费欧美日韩国产三级电影| 在线一区二区三区做爰视频网站| 日本一区二区电影| 国产剧情一区二区| 欧美mv日韩mv亚洲| 天堂va蜜桃一区二区三区| 色老综合老女人久久久| 中文字幕欧美一区| 床上的激情91.| 久久精品视频在线看| 日本不卡视频在线观看| 欧美精品黑人性xxxx| 亚洲综合偷拍欧美一区色| 99r国产精品| 中文字幕在线一区免费| 国产成人久久精品77777最新版本| 日韩免费在线观看| 免费的成人av| 欧美一区二区三区性视频| 亚洲va韩国va欧美va精品| 在线观看91视频| 亚洲综合色噜噜狠狠| 日本伦理一区二区| 夜夜爽夜夜爽精品视频| 欧亚洲嫩模精品一区三区| 亚洲综合一二区| 欧美亚洲高清一区| 亚洲欧美电影一区二区| 色婷婷精品大在线视频| 亚洲激情第一区| 色94色欧美sute亚洲13| 亚洲自拍偷拍图区| 欧美日韩dvd在线观看| 无码av免费一区二区三区试看| 精品视频全国免费看| 亚洲成人三级小说| 日韩一二三四区| 精品一区二区三区在线播放 | 丁香另类激情小说| 国产精品久久久久久福利一牛影视 | 亚洲视频一二区| av在线播放一区二区三区| 亚洲欧洲成人精品av97| 91日韩一区二区三区| 一区二区不卡在线视频 午夜欧美不卡在| 91搞黄在线观看| 蜜臀av一级做a爰片久久| 精品国产免费一区二区三区香蕉| 国产精品99久久久久久有的能看| 国产精品三级av| 91免费国产在线| 五月婷婷欧美视频| 精品免费99久久| 成人午夜在线播放| 一区二区成人在线视频| 日韩一区二区三区在线视频| 国产在线不卡一区| 国产精品国产三级国产三级人妇 | 香蕉久久一区二区不卡无毒影院| 欧美精品777| 久久国产精品第一页| 久久综合久久综合久久| 国产成人精品综合在线观看| 国产精品成人免费在线| 欧美性淫爽ww久久久久无| 亚洲成a人v欧美综合天堂| 91精品国产一区二区三区蜜臀| 亚洲国产精品久久久久秋霞影院 | 日韩福利电影在线| 精品国产免费视频| 成人综合婷婷国产精品久久| 亚洲三级电影全部在线观看高清| 在线影视一区二区三区| 日韩电影一区二区三区| 国产亚洲精品超碰| 成人综合婷婷国产精品久久蜜臀| 亚洲成人资源在线| 久久综合色综合88| 99久久99精品久久久久久| 亚洲自拍偷拍av| 精品久久一二三区| 成人开心网精品视频| 亚洲永久精品国产| 欧美精品一区视频| 日本道免费精品一区二区三区| 日本视频一区二区三区| 欧美激情在线观看视频免费| 色菇凉天天综合网| 久久国产综合精品| 中文字幕在线视频一区| 欧美日韩在线播放| 国产真实乱子伦精品视频| 国产精品国产三级国产aⅴ中文 | 一区二区三区国产精华| 久久久不卡影院| 99视频一区二区| 奇米影视一区二区三区| 国产精品国产自产拍高清av | 国产美女娇喘av呻吟久久| 一区二区三区四区不卡视频| 日韩精品专区在线影院观看| 99综合电影在线视频| 日韩av不卡在线观看| 日韩一区日韩二区| 欧美电影免费提供在线观看| 成人性色生活片免费看爆迷你毛片| 蜜臀久久99精品久久久久久9 | 欧美高清你懂得| 成人一区二区三区在线观看| 日韩在线一区二区三区| 亚洲欧洲精品一区二区三区| 欧美一级爆毛片| 色呦呦国产精品| 日产欧产美韩系列久久99| 亚洲一区影音先锋| 国产欧美精品一区二区色综合| 91精品国产综合久久香蕉麻豆| 99精品一区二区| 国产成人在线看| 免费不卡在线观看| 亚洲电影你懂得| 亚洲欧美日韩国产综合在线| 国产精品免费观看视频| 日韩欧美一区在线观看| 欧美系列一区二区| 99re热这里只有精品视频| 国产精品69毛片高清亚洲| 蜜臀精品一区二区三区在线观看| 亚洲自拍另类综合| 亚洲欧美日韩中文字幕一区二区三区| 中文字幕欧美日韩一区| 欧美成人一区二区三区片免费 | 亚洲成年人网站在线观看| 中文字幕一区二区三区乱码在线| 91精品国产综合久久久久久久久久| 91免费精品国自产拍在线不卡 | 精品成人私密视频| 精品av久久707| 日韩无一区二区| 欧美麻豆精品久久久久久| 在线免费亚洲电影| 欧美性猛交xxxx乱大交退制版 | 精品中文字幕一区二区| av电影一区二区| 粉嫩高潮美女一区二区三区| 一区二区三区免费网站| 日本不卡一区二区三区高清视频| 久久成人免费电影| 菠萝蜜视频在线观看一区| 欧美日韩在线综合| 精品国产欧美一区二区| 亚洲一区影音先锋| 国产高清精品久久久久| 91福利社在线观看| 久久久久久久久久美女| 亚洲综合免费观看高清完整版| 国产一区欧美二区| 91九色最新地址| 国产精品美女视频| 麻豆精品精品国产自在97香蕉| 99精品视频在线免费观看| 日韩精品最新网址| 亚洲激情中文1区| 国产一区二区三区在线观看精品 | 免费的国产精品| 91丨porny丨在线| 色综合色综合色综合| 精品99一区二区三区| 亚洲线精品一区二区三区| 国产成人综合在线观看| 91超碰这里只有精品国产| 中文字幕制服丝袜成人av| 日本不卡123| 欧美性欧美巨大黑白大战| 国产丝袜在线精品| 日本美女一区二区三区视频| 国产999精品久久久久久绿帽| 91精品国产91久久综合桃花| 亚洲欧美乱综合| www.日韩大片| 国产日产欧美一区| 国产综合久久久久久久久久久久| 欧美日韩1区2区| 亚洲风情在线资源站|