×

Loading...

@Vancouver

Topic

  • 工作学习 / 学科技术讨论 / 今天, 俺终于写下了史上最最雷人的code..........
    需要显示日期,格式为 dd.mm.yy 比如 "06.07.10" 即七月六日。

    俺不加思考地写道:

    Date today = getDate();

    int month = today.GetMonth;
    int day = today.GetDay;

    string_month="";
    string_day ="";

    if month <=9 string_month = "0" + month
    else string_month = month

    if day <=9 string_day = ")" + day
    else string_day = day

    final_date = string_day + "." + string_month + "." + "10"

    同事走过来, 看看code, 又看看我, 再看看code, 再看看我。抢过键盘, 愤怒地敲出下面一行:
    final_date = getDate().ToString().Format("dd.mm.yy");

    俺一看, 大叫一声,掩面倒地,不省人事,吐血而亡。
    • final_date = getDate().ToString("dd.mm.yy"); 这个行的话,又省了好几个字符
      • 俺都亡了。你这招一出,俺岂不连投胎的资格都没有了?
      • final_date = getDate().ToString().Format("dd.MM.yy"); 是不是应该大写MM??
        • 在vb.net 是MM,但LZ 没明确限定是vb, 可以是Psudo code.
    • 没文化太可怕了,看着这么多字,楞是看不懂。
      • 活到老,学到老。莫要象我这样,被人一击毙命。
        • 没关系,他就是写出100段这样的东东,我也看不懂,当然也不会气死了。
    • 什么语言?也太脑残了吧? ToString() 回的应该是一个String吧?String不应该懂Format吧?
      • G#, 是F#的下一代自定义语言,相当灵活啊。
        • It looks that G# is so close to VB#.
    • 哈哈哈,太油菜了
    • mm要大写MM,否则成了毫秒了。我以前写过一个函数把字符串日期变成DateTime类型,比如:"03-04-2010".ToDateTime("dd-MM-yyyy"),比你这个难度大太多了,结果过了很长时间才发现DateTime自己有类似的函数DateTime.ParseExact(string Format)
    • 我知道你是开玩笑的, 我这里还真发现比你说的更愚蠢的DF code, 此人是多伦多著名培训学院的J2EE讲师.
    • 10年不写 code, 看懂了,还看见一个typo
    • 痛恨带下划线的变量名。
      • 知音啊,不喜欢C++的原因之一就是似乎很多下划线的变量在网上POST来POST去。
        • Why you don't like underline ?
    • 我敢打赌Format的代码比你这还要罗索。
      • 对啊对啊, 我觉得写的没什么不好啊, 系统自带的函数往往要考虑太多东西, 什么安全性啊, 平台兼容性啊, 代码一大堆. 自己写要简洁多了.
        • 就是啊,dirty code but works fine.可以节约很多钱,也少很多bug.
    • 看看这个code你就不难受了,这可是CMM level 5的code啊
      public static boolean isValidNumber(Integer number) {
      methodName = "isValidNumber";
      Logger logger = LoggingHelper.getLogger(LOGGER);
      logger.entering (CLASS, methodName);

      // parse this number. If you get an NFE, then its
      // not valid, return false
      try {
      Integer.parseInt(number.toString());
      } catch(Exception ex) {
      logger.fine(methodName + " returns false");
      logger.fine("Number Format Exception when parsing");

      return false;
      }

      logger.fine(methodName + " returns true");
      logger.exiting(CLASS, methodName);

      return true;
      }
      • 俺觉得写的挺好啊
        反正俺不懂
      • 哈哈
      • 貌似是SUPER-SENIOR写的呀。
        • 貌似此senior严重怀疑底层的可靠性
      • 这是为了凑line of code赚稿费么?:)
      • 这叫“境界”。要达到CMM level 5才能理解。
        • CMM LEVEL 5 NOW IS A JOKE
      • 牛人啊
    • 这坛子上曾经有一些言必称design patten 的人说过:现在的机器,你不往撑死里喂饱它,非常对不住它。
    • 雷人的不是code,是你。这东西,我不写code的人都知道这么写。
    • 都够有才的。
      • 木匠同学请不要随便对不了解的IT行业发表意见
        • 你怎么知道gowindsor干得不是it?
          • 俺接触到的IT份子基本上都是五体不勤 四谷不分的 换灯泡都要找俺这工厂打工的人来干 又做IT 又动手能力强的 那简直是天才
            • 哎呀, 你这一句话一不小心夸了多少人呀, 我就替大家表示感谢了. :)
              • 所以我一眼就看出你绝对不是做IT 的 :D
            • 你咋知道去温莎不是天才呢!
              • 谢谢橡皮鱼, 这是过奖了。
        • 我要是告诉你,我没有没用过的主流操作系统,没有没碰过的主流数据库,没有没写过的主流编程语言,你还敢说我不熟悉这个行业吗?
          • 虽然不懂你说的那些名词 但是我一般会这样吹牛 “我没有没用过的 非 主流......, 没有没碰过的 非 主流......, 没有没写过的 非 主流............."
            • not bad. fun
    • 雷人,累人,真雷人。
    • Thank you for entertaining us!
    • 看了几遍,没看懂,哪位高人给解释一下好笑在哪里?先谢了。
      • 笑点在他同事帮他解决了他没解决的问题。如果你在工作中,同事帮你做了事情,你不微笑着感谢? 而是横眉冷目,或者干脆来句"运气真好".
        • 原来如此,非常感谢,他们用的语言没学过...
    • 吐血而亡的应该是其他人,你的程序是“2010” 年的今天。 比如, 29.02.10.today.tostring.format 是当天的日期,如29.02.12 .
      • 你是想让LZ再死一次?
        • 据说猫有九条命,再死一次又何妨?
          • LOL
    • dd.mm.yy 怎么这种格式,很多义的
      • 弟弟,妹妹,悠悠
    • 雷是雷了点,但是能抓老鼠就是好猫。开个玩笑,以前碰到个team lead,喜欢用编程的行数来衡量工作量,你这样的code就有优势了。有个同事就一个0<i<100的判断,硬写成if i=1 then... if i=2 then... if i=3 then...,还跟我抱怨要写那么多个if,then,很累。。。
    • Simple update:
      Date today = getDate();
      int month = today.GetMonth;
      int day = today.GetDay;
      int year=today.GetYear
      final_date = ""+day/10+ day%10 + "." + month/10+month%10 + "." + year%100
    • 正常,写这种code的要么是会至少8种语言用过20种编译系统的,要么是brand new coder。
      • 我也来打擂台,用最高级语言写
        TEXT(TODAY(),"dd.mm.yy")
        • 输出结果是: 头大, 弟弟,妹妹, 爷爷。
          • 你用的语言版本似乎有bug,或者不够高级,再查查用对没有。
            • missed 'yy' , the yy is hardcode to "10"... it's looks like did by some outsource Top1 country.
      • C# DateTime.Now.ToString("ddMMyy");