| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 746 人关注过本帖
标题:求高手一个程序的编程思路!
只看楼主 加入收藏
ahsong
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-7-31
收藏
 问题点数:0 回复次数:5 
求高手一个程序的编程思路!
小弟对C语言一窍不通,前两天下载了一个WIN Tc玩,从教程上拷了一段代码做成了一个算一年过了多少天的程序,今天突发奇想想做一个算自己在世上活了多少天的程序
要实现的结果:通过输入自己的出生年月,程序算出从出生起到当天(如果可以的话提取电脑当前系统时间)共过了多少天

哪位高手有兴趣把代码写出来我学习学习
搜索更多相关主题的帖子: 思路 
2008-08-02 22:53
jimmytom
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2008-7-31
收藏
得分:0 
我不是高手,但给你一个思路,计算出你出生到现在活了多少秒,time函数返回从1970年1月1日午夜到现在的秒数, 你先把出生日期输进去,再用setdate,settime函数修改时间,日期,再调用time函数,保存这个值,把时间修改成现在真正的时间,再调用time函数,两数相减即是你所活秒数,要算天数再用除法可得,所用函数在time.h头文件里面。我用的GCC有此头文件,不知道标准C里面有没有这个头文件。
2008-08-02 23:20
Rand
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2008-7-2
收藏
得分:0 
[bo][un]jimmytom[/un] 在 2008-8-2 23:20 的发言:[/bo]

我不是高手,但给你一个思路,计算出你出生到现在活了多少秒,time函数返回从1970年1月1日午夜到现在的秒数, 你先把出生日期输进去,再用setdate,settime函数修改时间,日期,再调用time函数,保存这个值,把时间修 ...

这个思路不错,比用万年历来要简单多了
2008-08-02 23:29
ahsong
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-7-31
收藏
得分:0 
如果有人把代码写出来就好了,小弟现在对你们说的东西似懂非懂
2008-08-02 23:31
netstriker
Rank: 1
等 级:新手上路
威 望:1
帖 子:257
专家分:0
注 册:2007-3-24
收藏
得分:0 
我对C还是一个初学者,结果用了最笨的方法来求出来,我在VC6.0上测试没有问题。

#include <stdio.h>
#include <time.h>

int main(int *argc,char argv[])
{
    int birth_year,birth_mon,birth_day;
    printf("输入出生日期,格式为 yyyy-MM-dd\n");
    scanf("%d-%d-%d",&birth_year,&birth_mon,&birth_day);    //输入出生的年月日

    birth_year = birth_year - 1900;            //计算机是以1900开始计算的

//    printf("birth is:%d %d %d",birth_year,birth_mon,birth_day);

    struct tm* now;
    time_t t;
    time(&t);
    
    now = localtime(&t);

    int day=0;
    while(!(now->tm_year == birth_year && now->tm_mon== birth_mon && now->tm_mday == birth_day))
    {
        (now->tm_mday)--;
        time_t temp_time =  mktime(now);
        now = localtime(&temp_time);
        ++day;
    }
    
    printf("我竟然可以活了%d天!!!\n",day);

    return 0;
}
2008-08-03 00:55
elan1986
Rank: 6Rank: 6
等 级:贵宾
威 望:18
帖 子:458
专家分:407
注 册:2007-12-17
收藏
得分:0 
#include "stdio.h"
#include "time.h"
#include "conio.h"

main()
{
struct tm *aa;
long  year,month,day,years,months,days,i,j,sum_day=0,sum,leap,sum_s;

time_t t;
printf("input the year: ");
scanf("%d",&year);
printf("input the month: ");
scanf("%d",&month);
printf("input the day: ");
scanf("%d",&day);


time(&t);
aa=gmtime(&t);
years=aa->tm_year+1900;
months=aa->tm_mon;  
days=aa->tm_mday;



    for(i=year+1;i<years;i++)
    {
        if(year%400==0||(year%4==0&&year%100!=0))
            {
                j=366;    
                sum_day=sum_day+j;
            
            }
        else
            {
                j=365;
                sum_day=sum_day+j;
            }
    }



  switch(month) /*先计算某月以前月份的总天数*/
  {
    case 1:sum=0;break;
    case 2:sum=31;break;
    case 3:sum=59;break;
    case 4:sum=90;break;
    case 5:sum=120;break;
    case 6:sum=151;break;
    case 7:sum=181;break;
    case 8:sum=212;break;
    case 9:sum=243;break;
    case 10:sum=273;break;
    case 11:sum=304;break;
    case 12:sum=334;break;
    default:break;
  }

  sum=sum+day; /*再加上某天的天数*/
  if(year%400==0||(year%4==0&&year%100!=0)) /*判断是不是闰年*/
    leap=1;
  else
    leap=0;
  if(leap==1&&month>2) /*如果是闰年且月份大于2,总天数应该加一天*/
    sum++;

 if(year%400==0||(year%4==0&&year%100!=0))
    sum=366-sum;
else
    sum=365-sum;
sum_day=sum_day+sum;

sum_s=sum_day*24*3600;
printf("%ld",sum_s);

}
2008-08-03 01:53
快速回复:求高手一个程序的编程思路!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011315 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved