C语言实现的程序员老黄历实例

本文实例讲述了C语言实现的程序员老黄历。分享给大家供大家参考。具体如下:

以前看到过一个jquery程序员老黄历页面,觉得挺有创意的,自己闲着用C语言也写了一个,基本就是随机数的生成,没什么难度,大家随便看看,高手请绕过此篇,控制台程序没什么美观可言,已经尽量弄得好看点了。

#include <stdio.h>
#include <time.h>
int random(int dayseed,int indexseed)
//根据当前时间“天 ”产生伪随机数。
{
  int i,n;
  n = dayseed % 11117;
  for (i = 0; i < 100 + indexseed; i++)
  {
    n = n * n;
    n = n % 11117;  // 11117 是个质数
  }
  return n;
}
int isWeekend(struct tm *p)
{
  return p->tm_wday == 0 || p->tm_wday == 6;
}
int main(int argc, char *argv[])
{
  char *weeks[6] = {"一","二","三","四","五","六","日"};
  printf("|-------------------------------------|\n");
  printf("|     程序员老黄历beta 1.0    |\n");
  printf("|-------------------------------------|\n");
  time_t timep;
  struct tm *p;
  time(&timep);
  p =localtime(&timep);
  //此函数获得的tm结构体的时间,是已经进行过时区转化为本地时间
  printf("|-------------------------------------|\n");
  printf("|   今天是%d年%d月%d日 星期%s   |\n",1900+p->tm_year,1+p->tm_mon,p->tm_mday,weeks[p->tm_wday-1]);
  printf("|-------------------------------------|\n");
  int randNum=random(p->tm_mday, 2);//产生伪随机数
  int randNum1=random(p->tm_mday, 3);
  char *activities[27][3] = {
  {"写单元测试", "写单元测试将减少出错","写单元测试会降低你的开发效率"},
  {"白天上线", "今天白天上线是安全的","可能导致灾难性后果"},
  {"重构", "代码质量得到提高","你很有可能会陷入泥潭"},
  {"使用%t", "你看起来更有品位","别人会觉得你在装逼"},
  {"跳槽", "该放手时就放手","鉴于当前的经济形势,你的下一份工作未必比现在强"},
  {"招人", "你遇到千里马的可能性大大增加","你只会招到一两个混饭吃的外行"},
  {"面试", "面试官今天心情很好","面试官不爽,会拿你出气"},
  {"提交辞职申请", "公司找到了一个比你更能干更便宜的家伙,巴不得你赶快滚蛋","鉴于当前的经济形势,你的下一份工作未必比现在强"},
  {"申请加薪", "老板今天心情很好","公司正在考虑裁员"},
  {"晚上加班", "晚上是程序员精神最好的时候","", },
  {"命名变量\"%v\"", "",""},
  {"写超过%l行的方法", "你的代码组织的很好,长一点没关系","你的代码将混乱不堪,你自己都看不懂"},
  {"提交代码", "遇到冲突的几率是最低的","你遇到的一大堆冲突会让你觉得自己是不是时间穿越了"},
  {"代码复审", "发现重要问题的几率大大增加","你什么问题都发现不了,白白浪费时间"},
  {"开会", "写代码之余放松一下打个盹,有益健康","你会被扣屎盆子背黑锅"},
  {"晚上上线", "晚上是程序员精神最好的时候","你白天已经筋疲力尽了"},
  {"修复BUG", "你今天对BUG的嗅觉大大提高","新产生的BUG将比修复的更多"},
  {"设计评审", "设计评审会议将变成头脑风暴","人人筋疲力尽,评审就这么过了"},
  {"需求评审", "",""},
  {"打DOTA", "你将有如神助","你会被虐的很惨", },      //这里往下的是周末特定情况 (19-27)
  {"洗澡", "你几天没洗澡了?","会把设计方面的灵感洗掉", },
  {"锻炼一下身体", "","能量没消耗多少,吃得却更多", },
  {"抽烟", "抽烟有利于提神,增加思维敏捷","除非你活够了,死得早点没关系", },
  {"在妹子面前吹牛", "改善你矮穷挫的形象","会被识破", },
  {"撸管", "避免缓冲区溢出","强撸灰飞烟灭", },
  {"浏览成人网站", "重拾对生活的信心","你会心神不宁", },
  {"上微博", "今天发生的事不能错过","会看到令人心情不好的事", },
  {"上AB站", "还需要理由吗?","满屏的兄贵我会说出来?", }
};
  printf("|-------------------------------------|\n");
  if(isWeekend(p))
  printf("| 宜: \n| %2s\n| %s\n",activities[19+randNum%8][0],activities[randNum%27][1]);
  else
  printf("| 宜: \n| %2s\n| %s\n",activities[randNum%17][0],activities[randNum%27][1]);
  printf("|-------------------------------------|\n");
  printf("|-------------------------------------|\n");
  if(isWeekend(p))
  printf("| 不宜:\n| %s\n| %s\n",activities[19+randNum1%8][0],activities[randNum1%27][2]);
  else
  printf("| 不宜:\n| %s\n| %s\n",activities[randNum1%17][0],activities[randNum1%27][2]);
  printf("|-------------------------------------|\n");
  /*座位朝向*/
  char *directions[8]= {"北方","东北方","东方","东南方","南方","西南方","西方","西北方"};
  printf("|-------------------------------------|\n");
  printf("| 座位朝向:面向 %s 写程序,BUG 最少.\n",directions[randNum%8]);
  /*今日宜饮*/
  char *drinks[14] = {"水","茶","红茶","绿茶","咖啡","奶茶","可乐","牛奶","豆奶","果汁","果味汽水","苏打水","运动饮料","酸奶","酒"};
  printf("|-------------------------------------|\n");
  printf("| 今日宜饮:%s,%s\n",drinks[randNum%14],drinks[randNum1%14]);
  /*女神亲近指数*/
  int ambiguous = randNum%10;
  printf("|-------------------------------------|\n");
  if(10==ambiguous)
  printf("| 亲近指数为10,上吧,骚年!\n");
  else
  printf("| 女神亲近指数:%d \n",ambiguous);
  printf("|-------------------------------------|\n");
  return 0;
}

运行效果如下图所示:

希望本文所述对大家的C语言程序设计有所帮助。

(0)

相关推荐

  • c语言strftime时间格式化示例

    函数原型: 复制代码 代码如下: size_t strftime (char* ptr, size_t maxsize, const char* format,const struct tm* timeptr ); 代码示例: 复制代码 代码如下: #include <stdio.h>#include <time.h> int main (){    time_t rawtime;    struct tm * timeinfo;    char buffer [128]; tim

  • 使用C语言中的time函数获取系统时间

    可以通过time()函数来获得计算机系统当前的日历时间(Calendar Time),处理日期时间的函数都是以本函数的返回值为基础进行运算.其原型为:time_t time(time_t * t);如果你已经声明了参数t,你可以从参数t返回现在的日历时间,同时也可以通过返回值返回现在的日历时间,即从一个时间点(例如:1970年1月1日0时0分0秒)到现在此时的秒数.如果参数为空(NULL),函数将只通过返回值返回现在的日历时间,比如下面这个例子用来显示当前的日历时间: 复制代码 代码如下: #i

  • C语言循环结构与时间函数用法实例教程

    本文实例展示了C语言循环结构与时间函数用法,对于C语言的学习来说是非常不错的参考借鉴材料.分享给大家供大家参考之用.具体如下: 完整实例代码如下: /********************************************** ** <Beginning C 4th Edition> Notes codes ** Created by Goopand ** Compiler: gcc 4.7.0 *****************************************

  • C语言小程序 计算第二天日期示例代码

    复制代码 代码如下: #include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>int year, month, day;const int day_30 = 30;const int day_31 = 31;int day_month_2 = 0;char err_flag = 0;void compute(){ printf("输入年月日(1992-7-19

  • C语言小程序 如何判断两个日期之差

    1.普通的写法 复制代码 代码如下: #include <stdio.h>int leapyear(int year){ if((year%4==0 && year%100!=0) || year%400==0)  return 1; else   return 0;}int days(int *day1, int *day2){ int i=0; int *tmp; int diff = 0; const int month[13]={0,31,28,31,30,31,30,

  • c语言实现系统时间校正工具代码分享

    复制代码 代码如下: //*******************************************************************//Time Protocol是一种非常简单的应用层协议.它返回一个未格式化的32位二进制数字, //这个数字描述了从1900年1月1日午夜到现在的秒数.服务器在端口37监听协议请求,以 //TCP/IP或者UDP/IP格式返回响应.将服务器的返回值转化为本地时间是客户端程序的责任. //这里使用的时间服务器是129.132.2.21,更

  • jQuery老黄历完整实现方法

    本文实例讲述了jQuery老黄历实现方法.分享给大家供大家参考.具体实现方法分析如下: 先来看看程序运行效果: html页面部分如下: 复制代码 代码如下: <!DOCTYPE html> <html>  <head>   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">   <title>jquery老黄历特效 -<

  • C语言实现的程序员老黄历实例

    本文实例讲述了C语言实现的程序员老黄历.分享给大家供大家参考.具体如下: 以前看到过一个jquery程序员老黄历页面,觉得挺有创意的,自己闲着用C语言也写了一个,基本就是随机数的生成,没什么难度,大家随便看看,高手请绕过此篇,控制台程序没什么美观可言,已经尽量弄得好看点了. #include <stdio.h> #include <time.h> int random(int dayseed,int indexseed) //根据当前时间"天 "产生伪随机数.

  • Java实现的程序员老黄历实例

    今早起来,无聊之际把程序员老黄历用Java实现了一番. 原JS版地址:程序员老黄历 尊重原作--哈哈哈(连备注都复制的人是不是很恶心的?) 代码如下: 代码段1 package com.test; /** * activities的枚举 * @author Xiao * */ public enum ActivitiesEnum { ACTIVITIES_1("写单元测试", "写单元测试将减少出错", "写单元测试会降低你的开发效率", fal

  • linux平台的office文档转pdf的实例(程序员的菜)

    需要材料: 1.  Openoffice3.4(我是32位的centos,可以根据自己的系统下载指定的openoffice软件包) 下载地址:http://sourceforge.net/projects/openofficeorg.mirror/files/stable/3.4.1/Apache_OpenOffice_incubating_3.4.1_Linux_x86_install-rpm_en-US.tar.gz/download 2.  jodconverter.2.2.2 下载地址:

  • go语言简单网络程序实例分析

    本文实例分析了go语言简单网络程序.分享给大家供大家参考.具体分析如下: 服务端代码如下: 复制代码 代码如下: package main import (     "net"     "os" ) func serve(s net.Conn) {     var buf [1024]byte     for {         n, err := s.Read(&buf)         if err != nil || n == 0 {         

  • 为什么Java是程序员受欢迎的语言这几个原因你该清楚

    Java一直稳居程序员很受欢迎的编程语言的榜首,是企业中使用最广泛的编程语言.同样也是广大有志青年加入程序员行列中,想要学习的一门语言,java语言为什么有如此大的魔力呢? 任何一个从事开发的人员,你在问他:想学习编程,学习哪种语言会比较好呢?他的回答肯定是"java语言".那么为什么会产生这样的结果呢?总结大概有这么几方面的原因: 1. Java有着25年的独立开发史 Java是源自一个"Oak"语言,从1995年正式改名为Java,一直运行到今天,已经有25年的

  • 程序员都不知道C语言中的这些小细节

    既然题目都说了是小细节,一来就介绍细节多没意思啊,先坑坑大家再详细介绍吧,嘿嘿.直接上7个题吧,看看你能做对几个呢? 计算型细节 ①: #include <stdio.h> int main() { char a = 3; char b = 127; char c = a + b; printf("结果是:%d",c); return 0; } 您想想这个题的答案是多少?先不要看后面的答案哦 答案是 -126, 嘿嘿,是不是答错了呢?先不要着急,继续看下面的题 ②: #in

  • PHP程序员必须知道的两种日志实例分析

    目录 前言 php-fpm 慢日志 开启慢查询日志 php-error 错误日志 开启错误日志 本文实例讲述了PHP程序员必须知道的两种日志.分享给大家供大家参考,具体如下: 前言 作为一名程序员,比码代码还重要那么一点点的东西就是日志的分析和查询.下面列出常见日志及设置方法. php-fpm 慢日志 php慢日志需要在php-fpm.conf设置,如果使用源码包安装默认请执行下面命令 cp php-fpm.conf.default php-fpm.conf 默认通过源码包编译安装php目录应在

  • 荐书|程序员书单必不可少系列之算法篇

    前言 又到了给大家"荐书"的时候了,如果计算机系只开三门课,那么这三门课就一定是:离散数学,数据结构与算法,编译原理.如果只开一门课,那剩下的就一定是:数据结构与算法.最近参加了很多线下的会议,发现一个点,就是不管什么技术主题的大会,人们都会找算法的书,小编再次深深地体会到算法是那么地必不可少,现在小编就来盘点一下算法书推荐给大家. 一.<程序员的数学>第3弹--线性代数 作者:[日] 平岡和幸,[日] 堀玄 译者:卢晓南 豆瓣评分:8.7分 机器学习.数据挖掘.模式识别必

  • 指南:想成为一个JSP网站程序员吗?

    任何Web开发人员需要必备的技巧主要有以下这些技术. 开发Web应用程序的技术已经变得更成熟.更复杂了.现在,构建一个Web应用程序不仅仅需要简单的HTML技术了.数据库访问.脚本语言和管理都是一个Web程序员需要具备的技术.让我们来看看要成为一个市场上受欢迎的Web开发人员都需要些什么技能吧. 自从CERN(欧洲粒子物理研究所),日内瓦附近的高能物理研究中心,在1991年发布了Web以来,Web技术已经从静态的内容和Common Gateway Interface(CGI)发展成servlet

  • 最有价值的50道java面试题 适用于准入职Java程序员

    下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最新版本,去掉了EJB 2.x等无用内容,补充了数据结构和算法相关的题目.经典面试编程题.大型网站技术架构.操作系统.数据库.软件测试.设计模式.UML等内容,同时还对很多知识点进行了深入的剖析,例如hashCode方法的设计.垃圾收集的堆和代.Java新的并发编程.NIO.2等,相信对准备入职的Ja

随机推荐