• 大小: 2KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-21
  • 语言: 其他
  • 标签: 当前时间  

资源简介

编写程序计算当前时间1秒后的时间 • 例如输入当前时间2006年12月20日19时17分59秒,计算后输出时间是2006年12月20日19时18分00秒。 • 程序要求: • 程序应该可以运行:通过控制台输入数据,输出数据通过printf 给出; • 程序结构明了、逻辑清晰; • 请考虑闰年、月份(大小)等逻辑; • 程序功能完整;

资源截图

代码片段和文件信息

#include 
#include 
#include 

int Month_Day[2][12] = {
 {31 28 31 30 31 30 31 31 30 31 30 31}
 {31 29 31 30 31 30 31 31 30 31 30 31}
};

//判断是否是闰年,是则返回1,否则返回0
int isLeapYear(int y)
{
 return ((y % 400 == 0) || ((y % 4 == 0) && (y % 100 != 0)));
}


// 得到下一天的日期,M:月份,0~11日期[0~31]
void getNextDay(int * Yint * Mint * D)
{
 int iC1 = 0 iC2 = 0;     //记录进位
  
 iC2 = ((*D) + 1) / Month_Day[isLeapYear(*Y)][(*M)];
 *D = ((*D) + 1) % Month_Day[isLeapYear(*Y)][(*M)];
 
 iC1 = ((*M) + iC2) / 12;
 *M = ((*M) + iC2) % 12;

 *Y += iC1;
}

// 得到下一秒的时间,如果返回小时向前的进位
int getNextSec(int * hint * mint * s)
{
 int iC1 = 0 iC2 = 0;
 iC1 = (*s + 1) / 60;
 *s = (*s + 1) % 60;
 
 c2 = (*m + iC1) / 60;
 *m = (*m + iC1) % 60;
 
 iC1 = (*h + iC2) / 24;
 *h = (*h + iC2) % 24;
 
 return iC1;
}

//得到下一秒的时间
void nextSec(struct tm * st)
{
 //得到时间的下一秒,返回进位
 int c = getNextSec(& st->tm_hour & st->tm_min & st->tm_sec);
 if ( c != 0 )  //如果
 {
  getNextDay(& st->tm_y

评论

共有 条评论

相关资源