免费注册 查看新帖 |

Chinaunix

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

[C] C语言中怎么样把时间转到20041225这样的? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-12-25 14:04 |只看该作者 |正序浏览
怎么样转到这样的格式?
看了那些函数...感觉没有一个可以转啊..
不象PHP中转起来很方便...
可PHP也需要有解析啊...
那是不是C里面也同样有这样的函数啊/

      

论坛徽章:
0
32 [报告]
发表于 2004-12-30 20:30 |只看该作者

C语言中怎么样把时间转到20041225这样的?

你看看下面这段代码吧,我经常用的。
..............................
    struct     tm when;
    time_t     now;
    time(&now);
    when=*localtime(&now);
    memset(tday,0,sizeof(tday));
    sprintf(tday,"%8ld",(when.tm_year + 1900) * 10000 + (when.tm_mon + 1) * 100
+ when.tm_mday);
........................................

论坛徽章:
0
31 [报告]
发表于 2004-12-28 15:58 |只看该作者

C语言中怎么样把时间转到20041225这样的?

管他呢,喝酒去!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
30 [报告]
发表于 2004-12-28 12:35 |只看该作者

C语言中怎么样把时间转到20041225这样的?

原帖由 "zuibird" 发表:


c语言的特点并不限制其应用环境就一定要在系统开发,电信,金融等领域许多核心业务控制系统就是c实现的,这里对程序的稳定,健壮和维护性的要求显然更被看重。


晕,我说的只是一个方面啊,我又没都一棒子打死。A和B是两个命题,!A成立的话,B不一定成立吧?

另外,过分的“蛇足”,不见得就对程序的健壮性和可维护性有帮助。过分冗长的代码,反而会给读代码的人带来麻烦。当然memset并不过分,只是一个仁者见仁的问题。

这是一个仁者见仁的问题,正如每个人的代码有每个人不同的风格一样。

论坛徽章:
0
29 [报告]
发表于 2004-12-28 12:27 |只看该作者

C语言中怎么样把时间转到20041225这样的?

这贴方向已经彻底与楼主 byebye了,呵呵

flw         
发表于: 2004-12-27 15:00    发表主题:
功底差且不思进去的朋友们多用用无妨,
不过,有些要求比较高的好公司是不要这样的程序员的


斑竹过份了吧,程序的应用需要和个人风格都不该涉及到人品吧?
至于公司的要求也因业务差异而不同。



aero         
帖子总数发表于: 2004-12-27 16:40    发表主题:
1、C已经渐渐的离开了应用程序开发领域了。我们无可否认的是,java、C++等一些从语法上面向对象,致力与快速、高效、简洁开发的语言正不断取代C的位置。那些越来越简单的各种工具,让人们的注意力越来越集中于项目逻辑,而不是技术细节。而C也正不断专注与系统开发和嵌入式开发部分。对于应用软件来说,几个函数的调用无所谓。可是对于系统软件和嵌入式软件,有些时候,几个时钟周期都是很重要的。


c语言的特点并不限制其应用环境就一定要在系统开发,电信,金融等领域许多核心业务控制系统就是c实现的,这里对程序的稳定,健壮和维护性的要求显然更被看重。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
28 [报告]
发表于 2004-12-28 11:39 |只看该作者

C语言中怎么样把时间转到20041225这样的?

还有这样的情况:
1、strcpy(buf, fuc());
但fuc() return NULL;

2、memcpy(buf, value1, len1);
     memcpy(buf+len1, value2, len2);
......
不用memset,就这样
len = 0;
memcpy(buf, value1, len1);
len += len1;
....
buf[len] = 0;

不爽

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
27 [报告]
发表于 2004-12-28 11:32 |只看该作者

C语言中怎么样把时间转到20041225这样的?

偶支持unicorns,不能以君子之心度小人之腹!

论坛徽章:
0
26 [报告]
发表于 2004-12-28 11:19 |只看该作者

C语言中怎么样把时间转到20041225这样的?

原帖由 "flw" 发表:

大家记住:
memset 只在第一个操作是读操作的时候才有用。
如果第一个操作就是写操作,那么根本就不需要用 memset,
用不分青红皂白一上来就去 memset 这种方式来换取心里的安慰我觉得纯粹是不自信的表现。
却又..........

支持老大,不过……
一个被memset的地址读它干嘛??     

论坛徽章:
0
25 [报告]
发表于 2004-12-28 11:08 |只看该作者

C语言中怎么样把时间转到20041225这样的?

兄弟们说的都很好.
总结起来实际上就是看问题的角度不同.

aero说的没有错,如果在系统层做事情memset这东西当然是铺张浪费.
做嵌入式因为硬件限制也不允许这种铺张浪费.我前面所指只是就应用程序而言.

我觉得做程序要找到一个平衡点,不可否认太过频繁的使用了memset会使程序效率上受到影响,过多分配的内存会使程序占用的资源大大上升.但就象马克思他老人家说的,事物都是有两面性的,由此带来的好处就是程序的开发周期缩短,可维护性增强等等.片面的追求哪一方面都不能说是正确的,如果可以找到一个可以接受的中间点那何乐而不为呢.

现在的情况是硬件资源的价格要远远低于人力资源的价格,用机器的时间来换人的时间还是比较划算的一件事情.放在十年前那是另一种情况.

flw老大,今天我和你意见差别可大了点.
首先,如果这个程序是你一个人写,我个人相信你的能力可以写好没问题.但现在又有多少个工程是一个人干下来的.你不可能寄希望于开发团队里每个人都和你的水平一样,而且一直都保持一颗清醒的头脑,所以如果条件允许还是在出问题的源头把他堵住的好.
其次,不能简单的分读操作还是写操作而辨别是否用memset之类的初始化.有些变量定义了可能在很远以后才会使用.不会一次考虑那么远的.

我曾经碰到这样一个问题.前人写了这样一段代码

  1. char strbuf[1024] ;
  2. ........
  3. ........
  4. strcpy(strbuf, "initstr") ;
  5. ........
  6. ......
  7. strcat(strbuf, "str1") ;
  8. strcat(strbuf, "str2") ;
  9. .......
  10. .......
复制代码

后来有人处于某些情况又改了这个程序,把strcpy那段去掉了.
结果可想而知.

可能有人会说那就只能怪后面改的那人学艺不精.
但这根本就是可以用一个memset避免的.

论坛徽章:
0
24 [报告]
发表于 2004-12-28 10:23 |只看该作者

C语言中怎么样把时间转到20041225这样的?

原帖由 "flw" 发表:

其实,浪费 CPU 的时间只是一方面。
另一方面,我觉得是浪费敲代码的时间。
当然了,如果你的编辑器可以自动生成 memset 的话,我倒是可以忍受。
否则,当我明知道我的字符串马上会在下面进行“写”操作,
却又..........

要是别人修改你的程序的话,只要一犯晕,bug连绵不绝。
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP