| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 344 人关注过本帖
标题:关于日期的的的存储于转换有点看不明白,求高手指点。多谢啦!
只看楼主 加入收藏
ybjkl
Rank: 2
等 级:论坛游民
帖 子:86
专家分:85
注 册:2011-6-21
结帖率:95.65%
收藏
已结贴  问题点数:20 回复次数:5 
关于日期的的的存储于转换有点看不明白,求高手指点。多谢啦!
今天在一本习题上看到这么一段代码,有点不明白,求解释
char databuf[9];  //存放当前日期
int date1[3];     //存放借书日期
int date2[3];     // 存放还书日期

···
_strdate(datebuf);   //获取当前日期      这个strdate这个函数到底怎么用呢?
//将字符型日期转换为整形,作为借书日期   下面这段代码不知道他在说什么?求解释,多谢啦!
date1[0]=(datebuf[0]-'0')*10+datebuf[1]-'0'+2000;
date1[1]=(datebuf[6]-'0')*10+datebuf[7]-'0';
date1[2]=(datebuf[3]-'0')*10+datebuf[4]-'0';




搜索更多相关主题的帖子: 函数 
2012-03-07 16:13
Elvis_yan
Rank: 2
等 级:论坛游民
帖 子:8
专家分:31
注 册:2012-3-7
收藏
得分:20 
回复楼主
当前日期datebuf数组存储的数字是以ASCII码进行存储的,而ASCII码与十进制数字刚好相差一个'0'值,
相差实现ASCII码对数字的转换
2012-03-07 16:57
ybjkl
Rank: 2
等 级:论坛游民
帖 子:86
专家分:85
注 册:2011-6-21
收藏
得分:0 
这个我知道,字符型换成整型。
比如20120307是当前日期的字符串 ,通过(datebuf[0]-'0')*10+datebuf[1]-'0'+2000
date1[0]里面存储的怎么就编程数值2012了呢?
2012-03-07 17:38
Elvis_yan
Rank: 2
等 级:论坛游民
帖 子:8
专家分:31
注 册:2012-3-7
收藏
得分:0 
回复楼主
先看_strdate(datebuf);是如何获取当前日期的,
我猜测它是 以如下方式存储的:
以今天2012年03月07日为例, 美式的日期格式为:  年\日\月    12\07\03
即:
数组datebuf[0] [1] [2] [3] [4] [5] [6] [7] [8]
            1   2   \   0   7   \   0   3

date数组是int类型,占4个字节(一般情况)一个数组元素如date[0]就可以存储 2的32次方以内的整数,
不知道我这样解释够不够清楚

[ 本帖最后由 Elvis_yan 于 2012-3-7 18:03 编辑 ]
2012-03-07 17:58
ybjkl
Rank: 2
等 级:论坛游民
帖 子:86
专家分:85
注 册:2011-6-21
收藏
得分:0 
按照你的解释可以解释得通。我在单独运行下_strdate(datebuf)验证下。多谢啦!
2012-03-07 19:34
ybjkl
Rank: 2
等 级:论坛游民
帖 子:86
专家分:85
注 册:2011-6-21
收藏
得分:0 
好像不对耶
#include"stdio.h"
#include"time.h"
main()
{
    char datebuf[9];
    _strdate(datebuf);
    for(int i=0;i<9;i++)
        printf("%c ",datebuf[i]);

}
程序输出的是 03/07/12   这样的书上的这个程序就有点问题了。
2012-03-07 19:41
快速回复:关于日期的的的存储于转换有点看不明白,求高手指点。多谢啦!
数据加载中...
 
   



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

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