免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: lianghaibo_lhb
打印 上一主题 下一主题

[C] 求:C语言计算天数的函数 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2003-06-19 10:42 |只看该作者

求:C语言计算天数的函数

可以先转换成time_t,再用difftime

论坛徽章:
0
12 [报告]
发表于 2003-06-19 10:51 |只看该作者

求:C语言计算天数的函数

原帖由 "win_bigboy" 发表:
特大喜讯,我给你发了.


公司机密文件,仅限站内朋友,请勿外传,谢谢.
   

收到,谢谢,不敢外传!

论坛徽章:
0
13 [报告]
发表于 2003-06-19 12:01 |只看该作者

求:C语言计算天数的函数

求出二者的timestamp(一般环境下都支持),相减后得出秒数,再除以86400即可.

论坛徽章:
0
14 [报告]
发表于 2003-06-19 12:34 |只看该作者

求:C语言计算天数的函数

原帖由 "win_bigboy" 发表:
特大喜讯,我给你发了.


公司机密文件,仅限站内朋友,请勿外传,谢谢.
   
给我一份吧老大!lipu_abc@163.com
学习一下

论坛徽章:
0
15 [报告]
发表于 2003-06-19 12:36 |只看该作者

求:C语言计算天数的函数

银行里算天数有时是按实际天数,有时要按对年对月对日计算(满月按30天,不满月部分按实际天数).
有点复杂.

论坛徽章:
0
16 [报告]
发表于 2003-06-19 18:15 |只看该作者

求:C语言计算天数的函数

哈哈~~~~~大家就都会说, 都懒的很啊

本大虾刚学C++不久, 帮你写了一个


include <iostream>;
using namespace std;
bool isleap(int y);
bool is_correct_date(int d, int m, int y);
void swap(int& a,int& b);
int main()
{
  int d,m,y, d1,m1,y1, day=0;
  cout<<"Enter one date(day,month,year): ";
  cin>;>;d>;>;m>;>;y;
  cout<<"Enter another date(day,month,year): ";
  cin>;>;d1>;>;m1>;>;y1;
  if(!is_correct_date(d,m,y)||!is_correct_date(d1,m1,y1))
     cout<<"Error Date Exist!"<<endl;                                      
  else
  {
    if(y1<y || (y1==y&&m1<m) || (y1==y&&m1==m&&d1<d))
    {     
          swap(y1, y);
          swap(m1, m);
          swap(d1, d);
    }      
    while(y!=y1 || m!=m1 || d!=d1)
    {
       d++;
       day++;
       if((m==1||m==3||m==5||m==7||m==8||m==10)&&d==32)   
       { m++;                                            
         d=1;                                            
       }
       else if((m==4||m==6||m==9||m==11)&&d==31)         
       { m++;                                          
         d=1;                                          
       }
       else if(m==12&&d==32)                             
       { y++;                                            
         m=1;                                            
         d=1;                                            
       }   
       else if(m==2 && isleap(y) && d==30)               
       { m++;                                            
         d=1;                                            
       }
       else if(m==2 && !isleap(y) && d==29)            
       { m++;                                            
         d=1;                                            
       }
    }   
    cout<<"between the two data there are "<<day<<" days."<<endl;  
  }
}

bool isleap(int y)
{ return y%4==0&&y%100!=0 || y%400==0;
}

bool is_correct_date(int d, int m, int y)
{
   if(
      (y<1||m<1||m>;12||d<1||d>;31) ||
      ((m==4||m==6||m==9||m==11)&&d>;30) ||
      (m==2 && isleap(y) && d>;29) ||
      (m==2 && !isleap(y) && d>;28 )
     )
   return false;
   return true;
}

void swap(int& a,int& b)
{
   int temp;
   temp = a;
   a = b;
   b = temp;
}

论坛徽章:
0
17 [报告]
发表于 2003-06-19 18:23 |只看该作者

求:C语言计算天数的函数

补充: 0。 上面那个小人头那里是 d>;28  )
        1。 上面的是按实际天数算的
        2。 写的比较乱, 但保证计算正确无误

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
18 [报告]
发表于 2003-06-19 18:45 |只看该作者

求:C语言计算天数的函数

恩,多多益善,我置为精彩回帖吧。

有新的想法就继续。

论坛徽章:
0
19 [报告]
发表于 2003-06-20 12:00 |只看该作者

求:C语言计算天数的函数

原帖由 "li2002" 发表:
   
给我一份吧老大!lipu_abc@163.com
学习一下
   

发了.

论坛徽章:
0
20 [报告]
发表于 2004-08-10 14:04 |只看该作者

求:C语言计算天数的函数

我正需要这个函数,有没有朋友帮帮忙呢发我一份?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP