免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1326 | 回复: 6
打印 上一主题 下一主题

看看这个关于时间幼稚问题!急!在线等! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-05-06 11:26 |只看该作者 |倒序浏览
知道年,月,怎样判断这月多少天?
记得大学里学过,
现怎么也想不起来!

论坛徽章:
0
2 [报告]
发表于 2003-05-06 11:58 |只看该作者

看看这个关于时间幼稚问题!急!在线等!

搜索一下就可以啊,你大学怎么学得啊!

论坛徽章:
0
3 [报告]
发表于 2003-05-06 12:11 |只看该作者

看看这个关于时间幼稚问题!急!在线等!

光记得先判断是否是闰年
除以400
具体实在记不得了
各位大虾!告诉我吧!

论坛徽章:
0
4 [报告]
发表于 2003-05-06 12:39 |只看该作者

看看这个关于时间幼稚问题!急!在线等!

原理:利用时间函数,求得本月(要计算的月)第一天与下一月第一天的差,即本月有多少天。


  1. #include <stdio.h>;
  2. #include <stdlib.h>;
  3. #include <errno.h>;
  4. #include <malloc.h>;
  5. #include <time.h>;

  6. long ToLongTime( year, mon, day )
  7. int        year, mon, day;
  8. {
  9.         struct tm stcTime;
  10.         long        tTimes;
  11.        
  12.         stcTime.tm_year = year - 1900;
  13.         stcTime.tm_mon = mon - 1;
  14.         stcTime.tm_mday = day;
  15.         stcTime.tm_hour = 0;
  16.         stcTime.tm_min = 0;
  17.         stcTime.tm_sec = 0;

  18.         tTimes = mktime( &stcTime);
  19.        
  20.         return tTimes;
  21. }

  22. void main(argc, argv)
  23. int        argc;
  24. char        *argv[];
  25. {
  26. int        year, mon;
  27. long        first, second, day_diff;

  28.         if (argc != 3)
  29.         {
  30.                 printf("Usage: %s YEAR MONTH\n", argv[0]);
  31.                 exit(0);
  32.         }
  33.        
  34.         year = atoi(argv[1]);
  35.         mon = atoi(argv[2]);
  36.        
  37.         if( year < 1900 )
  38.         {
  39.                 printf("YEAR 必须大于1900 \n ");
  40.                 exit(0);
  41.         }
  42.         if(( mon < 1 ) || ( mon >; 12 ))
  43.         {
  44.                 printf("MONTH 必须介于1—12 \n ");
  45.                 exit(0);
  46.         }
  47.         first = ToLongTime(year, mon, 1);
  48.         second = ToLongTime(year + (mon == 12 ? 1 : 0 ), (( mon + 1 ) % 12), 1);
  49.        
  50.         day_diff = difftime(second, first);
  51.        
  52.         printf("%d days in Year %s Mon %s .\n", day_diff/60/60/24, argv[1], argv[2]);
  53. }
复制代码


hp-ux11 ANSIC C测试通过。

论坛徽章:
0
5 [报告]
发表于 2003-05-06 12:49 |只看该作者

看看这个关于时间幼稚问题!急!在线等!

我用WORLD上最美好的语言
赞美象WANGZ那样无私奉献的人们
我认为还有别的方法也可实现
象判断闰年、闰月的方法
希望大家继续支持

论坛徽章:
0
6 [报告]
发表于 2003-05-06 12:57 |只看该作者

看看这个关于时间幼稚问题!急!在线等!

这问题不是很难吧
不会你自己也写不出

论坛徽章:
0
7 [报告]
发表于 2003-05-06 14:25 |只看该作者

看看这个关于时间幼稚问题!急!在线等!

wangz的风格我喜欢!
绕过了那些罗里八索的东东
而且还肯定不会出错。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP