⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftime.c

📁 国外网站上的一些精典的C程序
💻 C
字号:
/***  Public domain by Jeff Dunlop & Bob Stout*/#include <time.h>#include "ftime.h"#if !defined(__TURBOC__) && !defined(__SC__) && !defined(__POWERC)#ifdef __ZTC__ #pragma ZTC align 1 #define DOS_GETFTIME dos_getftime #define DOS_SETFTIME dos_setftime typedef unsigned FTIME_T_;#else #pragma pack(1) #define DOS_GETFTIME _dos_getftime #define DOS_SETFTIME _dos_setftime #ifdef __WATCOMC__  typedef unsigned short FTIME_T_; #else  typedef unsigned FTIME_T_; #endif#endifint getftime (int handle, struct ftime *ftimep){      int retval = 0;      union      {            struct            {                  unsigned time;                  unsigned date;            } msc_time;            struct ftime bc_time;      } FTIME;      if (0 == (retval = DOS_GETFTIME(handle,            (FTIME_T_ *)&FTIME.msc_time.date,            (FTIME_T_ *)&FTIME.msc_time.time)))      {            *ftimep = FTIME.bc_time;      }      return retval;}int setftime (int handle, struct ftime *ftimep){      union      {            struct            {                  unsigned time;                  unsigned date;            } msc_time;            struct ftime bc_time;      } FTIME;      FTIME.bc_time = *ftimep;      return DOS_SETFTIME(handle, FTIME.msc_time.date, FTIME.msc_time.time);}#endifstatic void _ftimecnvrt(struct ftime *ft, struct tm *time, time_t *tt){      time->tm_sec  = ft->ft_tsec * 2;      time->tm_min  = ft->ft_min;      time->tm_hour = ft->ft_hour;      time->tm_mday = ft->ft_day;      time->tm_mon  = ft->ft_month - 1;      time->tm_year = ft->ft_year + 80;      *tt = mktime(time);                 /* Fill in rest of the struct */}void ftime2tm(struct ftime *ft, struct tm *time){      time_t tt;            _ftimecnvrt(ft, time, &tt);}time_t ftime2time(struct ftime *ft){      struct tm time;      time_t tt;            _ftimecnvrt(ft, &time, &tt);      return tt;}#ifdef TEST#include <stdio.h>#include <stdlib.h>#if defined(MSDOS) || defined(__MSDOS__) #include "unistd.h"#else #include <unistd.h>#endif#include "errors.h"#include "sniptype.h"#ifdef __WATCOMC__ #pragma off (unreferenced);#endif#ifdef __TURBOC__ #pragma argsused#endifmain(int argc, char *argv[]){      struct ftime ft;      struct tm time;      FILE *fp;      char timeline[80];      fp = cant(argv[0], "r");      if (Success_ != getftime(fileno(fp), &ft))            ErrExit("getftime() failed");      ftime2tm(&ft, &time);      printf("ft_tsec = %d\n", ft.ft_tsec);      printf("ft_min  = %d\n", ft.ft_min);      printf("ft_hour = %d\n", ft.ft_hour);      printf("ft_day  = %d\n", ft.ft_day);      printf("ft_month= %d\n", ft.ft_month);      printf("ft_year = %d\n", ft.ft_year);      puts("");      printf("tm_sec  = %d\n", time.tm_sec);      printf("tm_min  = %d\n", time.tm_min);      printf("tm_hour = %d\n", time.tm_hour);      printf("tm_mday = %d\n", time.tm_mday);      printf("tm_mon  = %d\n", time.tm_mon);      printf("tm_year = %d\n", time.tm_year);      strftime(timeline, 80, "\n%c\n", &time);      puts(timeline);      return EXIT_SUCCESS;}#endif /* TEST */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -