c语言:获取系统当前时间,设计年份计算月、日、时、分、秒等计算函数,然后调用这些函数之后显示你现在的时间。

简介: 代码如下
#include<stdio.h>
#include<time.h>
#define u8 unsigned char
u8 isRunNian(int year);
int getYear(int *day);
int getMonth(int *day,int year);
int getMonthOrDay(int year,int month);
int getHour(long second);
int getMinute(long second);
int getSecond(long second); 
int main()
{
  int second = time(NULL);
  int day = (second/60/60+8)/24+1;
  int year= getYear(&day);
  printf("%4d年%2d月%2d日 %2d:%2d:%2d",
    year,getMonth(&day,year),day,
    getHour(second),getMinute(second),getSecond(second));
  return 0;
}
int getMonth(int *day,int year) 
{
  int month=1;
  while(*day>getMonthOrDay(year,month))
  {
    switch(month)
    {
      case 2:
        *day-=28;
        if(isRunNian(year))
        {
          *day-=1;
        }
        break;
      case 4:
      case 6:
      case 9:
      case 11:*day-=30;break;
      default:*day-=31;break;
    }
    month++;
  }
  return month;
}
int getMonthOrDay(int year,int month)
{
  int day;
  switch(month)
  {
    case 2:
      day=28;
      if(isRunNian(year))
      {
        day=29;
      }
      break;
    case 4:
    case 6:
    case 9:
    case 11:day=30;break;
    default:day=31;break;
  }
  return day;
}
int getYear(int *day)
{
  int year=1970;
  while(*day>365)//2000   366
  {
    *day-=365;
    if(isRunNian(year))
    {
      *day-=1;
    }
    year++;
  }
  if(*day==0)
  {
    year--;
    *day = 1;
  }
  return year;
}
u8 isRunNian(int year)
{
  if(year%400==0 || (year%4==0&&year%100!=0))
  {
    return 1;//代表是闰年 
  }
  return 0;//代表不是闰年 
}
int getHour(long second)
{
  //当前系统时间是北京时间,但是获取的是世界协调时 ,所以我们需要加上8, 
  return second/60/60%24+8;
}
int getMinute(long second)
{
  return second/60%60;
}
int getSecond(long second)
{
  return second%60;
}

世界协调时

相关文章
|
1月前
|
存储 安全 数据管理
C语言之考勤模拟系统平台(千行代码)
C语言之考勤模拟系统平台(千行代码)
51 4
|
1月前
|
程序员 C语言 开发者
pymalloc 和系统的 malloc 有什么区别
pymalloc 和系统的 malloc 有什么区别
|
16天前
|
IDE 编译器 开发工具
【C语言】全面系统讲解 `#pragma` 指令:从基本用法到高级应用
在本文中,我们系统地讲解了常见的 `#pragma` 指令,包括其基本用法、编译器支持情况、示例代码以及与传统方法的对比。`#pragma` 指令是一个强大的工具,可以帮助开发者精细控制编译器的行为,优化代码性能,避免错误,并确保跨平台兼容性。然而,使用这些指令时需要特别注意编译器的支持情况,因为并非所有的 `#pragma` 指令都能在所有编译器中得到支持。
93 41
【C语言】全面系统讲解 `#pragma` 指令:从基本用法到高级应用
|
11天前
|
存储 编译器 C语言
【C语言】C语言的变量和声明系统性讲解
在C语言中,声明和定义是两个关键概念,分别用于告知编译器变量或函数的存在(声明)和实际创建及分配内存(定义)。声明可以多次出现,而定义只能有一次。声明通常位于头文件中,定义则在源文件中。通过合理组织头文件和源文件,可以提高代码的模块化和可维护性。示例包括全局变量、局部变量、函数、结构体、联合体、数组、字符串、枚举和指针的声明与定义。
40 12
|
20天前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
39 10
|
20天前
|
存储 程序员 C语言
【C语言】文件操作函数详解
C语言提供了一组标准库函数来处理文件操作,这些函数定义在 `<stdio.h>` 头文件中。文件操作包括文件的打开、读写、关闭以及文件属性的查询等。以下是常用文件操作函数的详细讲解,包括函数原型、参数说明、返回值说明、示例代码和表格汇总。
42 9
|
20天前
|
存储 Unix Serverless
【C语言】常用函数汇总表
本文总结了C语言中常用的函数,涵盖输入/输出、字符串操作、内存管理、数学运算、时间处理、文件操作及布尔类型等多个方面。每类函数均以表格形式列出其功能和使用示例,便于快速查阅和学习。通过综合示例代码,展示了这些函数的实际应用,帮助读者更好地理解和掌握C语言的基本功能和标准库函数的使用方法。感谢阅读,希望对你有所帮助!
31 8
|
20天前
|
C语言 开发者
【C语言】数学函数详解
在C语言中,数学函数是由标准库 `math.h` 提供的。使用这些函数时,需要包含 `#include <math.h>` 头文件。以下是一些常用的数学函数的详细讲解,包括函数原型、参数说明、返回值说明以及示例代码和表格汇总。
41 6
|
20天前
|
存储 C语言
【C语言】输入/输出函数详解
在C语言中,输入/输出操作是通过标准库函数来实现的。这些函数分为两类:标准输入输出函数和文件输入输出函数。
115 6
|
20天前
|
存储 缓存 算法
【C语言】内存管理函数详细讲解
在C语言编程中,内存管理是至关重要的。动态内存分配函数允许程序在运行时请求和释放内存,这对于处理不确定大小的数据结构至关重要。以下是C语言内存管理函数的详细讲解,包括每个函数的功能、标准格式、示例代码、代码解释及其输出。
49 6