今天一个朋友想要实现将一个文本文件中的时间向前推8个小时,以下是文本的格式,将其中的"20121105 10"替换为“20121105 02”
看起来似乎比较简单,但是问题是,如果遇到小时8小时的,就得向前推一天,如果遇到一个月的第一天,就得向前推一个月,并且
判断那个月有多少天,因此需要很多的分支语句来完成。
借助Matlab强大的时间操作函数datenum,将时间转换成天,然后减去1/3天,再用datestr函数格式化输出,但是这一切有了动态
的正则表达式,就如虎添翼了
以下是我的实现过程
fprintf(fopen('test2.txt','w'),'%s',... regexprep(fileread('A.TXT'),'(\d{8}\s\d{2})',... '${datestr(datenum($1,''yyyymmdd HH'')-1/3,''yyyymmdd HH'')}'));