C语言北京时间转为格林威治时间

北京时间比格林威治早8个小时,思路是先将北京时间转换为距1970年1月1日0点的秒数,然后在转换成服务器本地时区的格林威治时间。

例子程序 gmttime.c:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

int main(void)
{
printf("--------------\n");
char ori_time[14+1];
char tmp_year[4+1];
char tmp_month[2+1];
char tmp_day[2+1];
char tmp_hour[2+1];
char tmp_min[2+1];
char tmp_sec[2+1];
char sCurrentTime[15];
struct tm tmCurrentTime, *gmCurrentTime;
time_t gmt;

memset(ori_time, 0x00, sizeof(ori_time));
memset(tmp_year, 0x00, sizeof(tmp_year));
memset(tmp_month, 0x00, sizeof(tmp_month));
memset(tmp_day, 0x00, sizeof(tmp_day));
memset(tmp_hour, 0x00, sizeof(tmp_hour));
memset(tmp_min, 0x00, sizeof(tmp_min));
memset(tmp_sec, 0x00, sizeof(tmp_sec));
memset(sCurrentTime, 0x00, sizeof(sCurrentTime));

memcpy(ori_time, "20170225132901", 14);
printf("ori_time: %s\n", ori_time);

//取年
memcpy(tmp_year, ori_time, 4);
printf("year: %s\n", tmp_year);
tmCurrentTime.tm_year = atoi(tmp_year);
tmCurrentTime.tm_year = tmCurrentTime.tm_year - 1900;
//取月
memcpy(tmp_month, ori_time+4, 2);
printf("month: %s\n", tmp_month);
tmCurrentTime.tm_mon = atoi(tmp_month);
tmCurrentTime.tm_mon = tmCurrentTime.tm_mon - 1;
//取日
memcpy(tmp_day, ori_time+6, 2);
printf("day: %s\n", tmp_day);
tmCurrentTime.tm_mday = atoi(tmp_day);
//取时
memcpy(tmp_hour, ori_time+8, 2);
printf("hour: %s\n", tmp_hour);
tmCurrentTime.tm_hour = atoi(tmp_hour);
//取分
memcpy(tmp_min, ori_time+10, 2);
printf("min: %s\n", tmp_min);
tmCurrentTime.tm_min = atoi(tmp_min);
//取秒
memcpy(tmp_sec, ori_time+12, 2);
printf("sec: %s\n", tmp_sec);
tmCurrentTime.tm_sec = atoi(tmp_sec);
//转换为秒
gmt = mktime(&tmCurrentTime); //time_t 转换为 tm
//转换为格林威治时间
gmCurrentTime = gmtime(&gmt); //tm 转换为 time_t
sprintf(sCurrentTime, "%4d%02d%02d%02d%02d%02d",
gmCurrentTime->tm_year + 1900, gmCurrentTime->tm_mon + 1,
gmCurrentTime->tm_mday, gmCurrentTime->tm_hour,
gmCurrentTime->tm_min, gmCurrentTime->tm_sec);
printf("gmt_time: %s\n", sCurrentTime);

printf("--------------\n");
return 0;
}

其中mktime将时间转换为秒数,gmtime将秒数转换为服务器本地时区对应的格林威治时间。

win10简单设置

1、桌面显示我的电脑等图标
右键 – 个性化 – 主题 – 桌面图标设置

2、显示文件扩展名
驱动器工具 – 查看 – 文件扩展名

3、删除文件时提示是否删除
回收站 – 右键 – 属性 – 显示删除确认对话框

4、界面背景模糊(惨白惨白的)
1)右键 – 显示设置 – 更改文本、应用和其他项目的大小:推荐125%
2)右键 – 英特尔显卡设置 – 颜色设置
亮度:-20
对比度:50
色调:0
饱和度:0
色域:自然色彩
3)桌面右键-显示设置-当前对话框-高级显示设置-显示器1的显示适配器属性-颜色管理-高级-校准显示器
校准显示器颜色,调整伽玛值
PS:基本上调了对比度后,字能看清楚了

5、关闭快速启动
设置 – 电源和睡眠 – 其他电源设置 – 选择电源按钮的功能 – 去掉启用快速启动

6、磁盘清理
右键C盘 – 属性 – 磁盘清理

7、进入安全模式
设置 – 更新和安全 – 恢复 – 高级启动点立即重启
待重启后选择:
疑难解答 – 高级选项 – 启动设置 – 按4启用安全模式

8、隐藏搜索框
点击任务栏 – 右键 – 搜索 – 显示搜索图标

9、windows search占用高
services.msc -> 停止windows search服务
控制面板,找到windows search设置,自定义搜索位置,去掉用户目录

10、记事本
右上角 – 设置 – 记事本启动时 – 打开新窗口

上海三打一(斗地主)规则

1、叫地主
谁先抽到标记牌,谁先叫地主,玩家轮流叫档,可以选择叫“1档”、“2档”、“3档”或者“不叫”档。
所叫的档数必须比上一家高,叫档最高的玩家成为地主。

2、地主叫分
一档:叫1分,赢牌共得3分
二档:叫2分,赢牌共得6分
三档:叫3分,赢牌共得9分

3、荒番局
如果没有任何一个玩家叫档,则开始下一局,下一局为荒番局。

4、头撩(头撂)
第一个叫分的人直接做地主,记4分,赢牌共得12分。

5、摊打
只有出现“头撂”情况,那么本局地主得到底牌后,地主可以选择是否“摊打”。(如果选择“摊打”,其他三家可以看到地主手中的牌)。

6、框牌
不成对的牌。

7、牌型说明
1)天王炸弹:四张王牌。
2)炸弹:4—8个牌点一样的牌。
3)单牌:单个牌。
4)对牌:牌点相同的2张牌,两个小王或两个大王也算对子牌型。
5)三张:牌点相同的3张牌(不包括三张王,三张王只可以当一对和单张)。
6)三带二:点数相同的三张牌 + 一对牌,(三牌的牌点必须和所带的对牌牌点不同)
7)单顺:5张或5张以上牌点连续的牌。其中A即可以连在K后,又可以连在2前,即可以出现14张牌的顺子:A、2、3、4~K、A(注:这种14顺是最大的顺子。但不可出JQKA2。
8)双顺(姊妹对、姐妹对):3对或3对以上牌点连续的对牌
9)三顺:2个或2个以上牌点连续的三牌
10)飞机带翅膀:多个三带二的牌,要求所有的三条牌为牌点连续的牌,同时对牌也必须为牌点连续的牌

篮球场位置和规则

1、NBA记分牌下方有一行7格横条,有黄色有红色的
黄色表示剩余暂停数,一格代表一次

2、有时分数下面会有“BONUS”字样
bonus是指该球队已经达到一定的犯规状态,如果再犯规,无论是不是投篮犯规都要执行罚球的。

bonus触发条件有:
1)单节第四次犯规
2)每节最后2分钟的第一次犯规
3)加时赛第三次犯规

3、常见犯规
24秒钟规则:进攻球队在场上控球时必须在24秒钟内投篮出手。
8秒钟规则:球队从后场控制球开始,必须在8秒钟内使球进入前场(对方的半场)。
5秒钟规则:持球后,球员必须在5秒钟之内掷界外球出手,FIBA规则规定罚球也必须在5秒钟内出手。
3秒钟规则:分为进攻3秒和防守3秒。进攻3秒:进攻方球员不得滞留于3秒区3秒以上;防守3秒:当某防守方球员对应的进攻方球员不在3秒区或者3秒区边缘、且彻底摆脱防守球员时,防守方球员不得滞留禁区3秒以上(FIBA无防守3秒)。
球回后场:球队如已将球从后场移至前场,该球队球员便不能再将球移过中线,运回后场。
走步:运球过程当中出现三步没运,没传,没投,也就是球没离手的情况。
跃起:在跳起的时候没有将球投出或传出,脚步落地。
打手:持球方在停球,运球或上篮,投篮的时候,对位方的手接触到持球方的手和小臂部位。
带球撞人:持球方在攻入对方禁区,或运球途中,防守方脚步无移动,而持球方用身体撞击防守方,属于带球撞人。
防守犯规:主要是持球方在运球或上篮中,防守方出现脚步移动并与持球方发生身体碰撞,或拉,拽等接触身体方式扰乱持球方运球或上篮。
压跳:进攻方起身投篮或上篮的同时,防守方如果出现身体下压或碰撞进攻方,属于压跳。

4、球员位置
篮球分为12345号位置。

1号位:控球后卫(Point Guard)PG
2号位:得分后卫(Shooting Guard)SG
3号位:小前锋(Small Forward)SF
4号位:大前锋(Power Forward)PF
5号位:中锋(Center)C

PS:现在NBA球队有的对位置已经比较模糊了,像勒布朗詹姆斯除了中锋之外其他位置都可以打。有的球队中锋还可以拉到外线投三分,而且很准。

5、技术犯规
技术犯规是指所有不包括与对方队员接触的队员犯规。队员不得漠视裁判员的劝告或运用不正当的行为。
1)判给对方队员两次罚球及掷一次界外球(所谓的两罚一掷)
2)技术犯规不算在普通犯规内,但技术犯规满2次即被罚下场

Oracle sum字段报错 ORA-01722: invalid number

有一个sql要统计多个字段的sum值:

select card_accp_id c1,date_settlmt_8, sum(amt_trans), sum(mcht_fee), sum(host_trans_fee1)
from bth_new_gc_txn_succ where date_settlmt_8 > '20160101' group by card_accp_id,date_settlmt_8

执行报错:

14:14:36 [SELECT - 0 row(s), 0.000 secs] [Error Code: 1722, SQL State: 42000] ORA-01722: invalid number
... 1 statement(s) executed, 0 row(s) affected, exec/fetch time: 0.000/0.000 sec [0 successful, 0 warnings, 1 errors]

解决:
原因是sum字段有空格,在host_trans_fee1上加个trim()

结果:

select card_accp_id c1,date_settlmt_8, sum(amt_trans), sum(mcht_fee), sum(trim(host_trans_fee1))
from bth_new_gc_txn_succ where date_settlmt_8 > '20160101' group by card_accp_id,date_settlmt_8

sum字段如果遇到有记录为非number会报错

Linux下SHA256计算哈希值和RSA加密

项目中遇到系统之间文件传输要使用SHA256 with RSA1024加密,计算签名。详细了解了一下。

1、SHA256
哈希算法用于计算信息摘要。因为md5和sha1有被碰撞和破解的可能性,所以使用sha256。

1.1、使用sha256sum命令计算哈希值
输入:一个文件或一个字符串
输出:SHA256输出256bit,32个字节,显示为64个16进制字符

1)当对字符串计算哈希值时,字符串不变,计算出的哈希值结果是一致的
2)当对两个文件计算时,文件生成时间不同,但文件内容相同,计算出的哈希值是一致的
3)当对两个相同内容的文件,分别打包压缩成tar.gz格式后,计算出的哈希值结果不一致
应该是在tar打包压缩时,添加了随机数,造成两个文件的哈希值不一致

2、RSA加密
RSA每次生成的密文都不一致?
公钥相同,明文相同,每次RSA加密的结果都不一致。因为RSA算法,加密前对明文进行了随机数填充,解密的结果不会受到影响。

输入:一个文件或一个字符串
输出:RSA 1024输出密文1024bit,128个字节的16进制字符

因为RSA key长度是1024,所以输出的密文也是1024吗?
继续阅读Linux下SHA256计算哈希值和RSA加密

9月25日

最近把半年前一部大热的电视剧《欢乐颂》看完了,有几段剧情拍的真现实。比如:樊胜美的父母带着她的侄子投奔到她住的地方,然后樊爸突发脑溢血,住院需要手续费,就樊妈哪个德行还要樊胜美借钱,最后在22楼众人的帮助下把她哥的房子卖了,填补医药费,否则对樊胜美来说就是一个无底洞啊。后面送樊爸出院对付讨债的人,安迪拿防狼喷雾剂,小曲拿小刀,关关拿了把菜刀,哈哈哈。这部剧里我比较喜欢到咖啡店工作后的邱莹莹,感觉智商回来了,性格有点一根筋,但是活的很自在。
然后近况还是上班下班,工作忙想研究研究技术吧,回家不想动脑子。。。另外看到这波上海房价涨幅,有点想买房子的念头了,自住用。其实我平时不怎么花钱,28岁买了第一双正版耐克鞋,29岁买了第一双正版阿迪达斯鞋,30岁看了人生第一场明星演唱会,再做2、3年大学毕业10年了,到那时不管有没有女朋友,不管有没有结婚,必须要撸一套房子,上海人不买房和咸鱼有什么区别。唉~~~

推荐日影20160820(2)

再来一批。《垫底辣妹》、《爱与和平》、《真实魔鬼游戏》、《我们都是超能力者 电影版》,后面三部都是园子温导演的。
PS:垫底辣妹在国内上映时已经看过了,我们都是超能力者有福利哦!
PS2:垫底辣妹下载资源被迅雷屏蔽了T_T,下载地址2用旋风可以下载!

《垫底辣妹》

◎译  名 垫底辣妹/奇迹补习社(港)
◎片  名 ビリギャル/Flying Colors
◎年  代 2015
◎地  区 日本
◎类  别 剧情
◎语  言 日语
◎字  幕 简体中文字幕
◎上映日期 2015-05-01(日本)
◎IMDB评分 7.6/10 from 95 users
◎豆瓣评分 8.3/10 from 4,914 users
◎文件格式 x264 + AC3
◎视频尺寸 1280 x 720
◎文件大小 1CD 1.19GiB
◎片  长 1h:56m:23s
◎导  演 土井裕泰
◎主  演 有村架纯
      伊藤淳史
      吉田羊
      田中哲司
      野村周平
      安田显

◎简  介

就读于名古屋某女子高中的工藤沙耶加(有村架纯 饰)是一个打扮入时、甜美可爱的时尚女孩,她每日里浓妆艳抹,和朋友们昏天黑地地玩耍,对于学习全不上心,所以学习成绩早就成为全年级倒数第一名。沙耶加自暴自弃,觉得反正自己很笨,有一搭无一搭浪费着绝不能重来的宝贵青春。

她的妈妈(吉田羊 饰)看在眼里急在心里,担心这样下去即使内部升学也很危险,所以建议女儿能去补习班突击一下。以此为契机,沙耶加来到了坪田(伊藤淳史 饰)开办的补习班。第一次见面时,坪田着实被女孩金色卷发、浓艳化妆、耳环脐环、短衣短裙的超时尚装扮吓得瞠目结舌,不过这对师生各自坦率爽朗的性格使他们很快打成一片。

经过测试后发现,已经高中二年级的沙耶加其知识水平竟然仅相当于小学四年级,此外还闹出了把“圣德天子”念成“圣德胖子”的笑话。面对这样一个前所未有的挑战,坪田既没有嘲笑,也没有气馁,他反而称赞沙耶加的想法是“天才级的构思”,甚至还做出了一年之内要帮助沙耶加考上名门学府庆应大学的保证。
继续阅读推荐日影20160820(2)

推荐日影20160820

又是好久、好久没有推荐日影了。。。《艺术大师》、《东京难民》、《再见歌舞伎町》、《神在巴厘岛》。

《艺术大师》

◎译  名 艺术大师
◎片  名 マエストロ!/Maestro!
◎年  代 2015
◎地  区 日本
◎类  别 剧情
◎语  言 日语
◎字  幕 简体中文字幕
◎上映日期 2015-01-31(日本)
◎IMDb评分 8.2/10 from 12 users
◎视频尺寸 1280×720
◎文件大小 1CD 1.08G
◎片  长 129 分钟
◎导  演 小林圣太郎
◎主  演 松坂桃李
      西田敏行
      miwa
      古馆宽治
      大石吾朗
      滨田麻里
      河井青叶
      池田铁洋
      茂吕师冈
      村杉蝉之介
      小林且弥
      中村伦也
      斉藤暁
      岛田久作
      松重丰

◎简  介

以首席小提琴演奏家香坂真一(松坂桃李饰)为首,曾经因经营不善而被迫解散的前中央交响乐团突然传来重组的好消息。然而与期望有着巨大落差的是,乐团的排练地设在一处废弃工厂,前来报到的除了一直没找到工作的乐团“失败组”团员外,便是橘天音(miwa 饰)这一类名不见经传的业余爱好者。许久未凑在一起排练,加上还有好多非专业人员参与,演奏的效果可想而知,香坂为此颇感不安与烦恼。

在此期间,排练现场还出现了一个神秘的指挥家天道彻三郎(西田敏行饰),他正是此次重组的始作俑者。乐团中没人知道天道的身份和背景,而且他指挥的风格也迥异寻常,甚至排练时也只不过拿着木匠的工具当指挥棒。乐团成员们对天道随心所欲的指挥风格倍感抵触,可是随着排练的深入,他们渐渐被这个疯癫老人的言语所吸引,逐步纳入到他的节奏中来。未过多久,这群各自经历了伤心往事的失败者们在优美的旋律中重获自信。然而只有香坂冷冷地审视着天道上蹿下跳的表演,当他知晓了对方的过去以及和自家的渊源时,他内心的排斥和厌恶变得更加强烈。
继续阅读推荐日影20160820

足球场位置说明

以前对足球队球员的站位都不懂,特地搜索整理了一下,其实内行看门道,外行看热闹,一个球队的阵形位置有很大的名堂在里面的。

一、后防
1、GK(Goalkeeper):守门员

2、CB(Center Back):中后卫
中后卫一般都是非常高大型的,身高一般的前锋争抢头球是处于劣势的。

3、LB(Left Back):左后卫

4、LSB(Left Side Back):左边后卫

5、LWB(Lift Wing Back):左边后卫-助攻型

6、RB(Right Back):右后卫

7、RSB(Right Side Back):右边后卫

8、RWB(Right Wing Back):右边后卫-助攻型

9、SW(Sweeper):清道夫
现在的真实足球阵型很少用。

10、LIB(Liberal):自由人
进攻型清道夫。现在的真实足球阵型很少用。
继续阅读足球场位置说明

软件及互联网爱好者