这是个包含农历的日历程序,日历下方会显示传统与国际节假日。这个程序通过Conky把结果显示在我的桌面上,如果要用于其他用途,请自行修改程序。程序需要一个公历对照农历的文本文件,请修改程序中对应路径。

#!/usr/bin/perluse strict;
use warnings;my $today=`/bin/date '+%F'`;my ($t_year,$t_month,$t_day);if ($today=~/^(.+?)-(0|)(.+?)-(0|)(.+)$/){$t_year=$1;$t_month=$3;$t_day=$5;}my $dow=`/bin/date -d $t_year-$t_month-1 '+%u'`;
chomp $dow;my $day=2-$dow;
my $dom=&dom($t_year,$t_month);
my $weeks=($dom+$dow-1)/7;my $zwy=&zwy($t_month);my $ctjr;
my $gjjr=&gjjr($t_month);print "\${font :size=24}\${alignr}$t_year年 $zwy月\${font}\n\n";printf "%7s%7s%7s%7s%7s%7s%7s\n  \${stippled_hr}\n","一","二","三","四","五","六","日";
for (my $i=0;$i<$weeks;$i++){my $j;print "\${font :size=18}";for ($j=1;$j<=7 && $day<=$dom;$j++){if ($day>0){if ($day==$t_day){printf ("\${color #ff5d51}%4s\${color}",$day);}else{printf ("%4s",$day);}}else{printf ("%4s","");}$day++;}print "\${font}\n";$day=$day-$j+1;for ($j=1;$j<=7 && $day<=$dom;$j++){my $nl=&gl2nl($t_year,$t_month,$day);if ($day>0){if ($nl=~/(.+?月)初一/){printf ("\${color #e9ff6f}%8s\${color}",$1);}elsif ($nl=~/.+?月(.+)/){printf ("%8s",$1);}else{printf ("\${color #d196bd}%8s\${color}",$nl);}$ctjr.=&ctjr($nl);}else{printf ("%6s","");}$day++;}print "\n\n";}print "\${color #e9ff5f}\${offset 150}传统节日\n";if (my @ctjr=$ctjr=~/(.+?\n)/g){foreach (@ctjr){print "\${offset 120}$_";}
}print "\n\${offset 150}国际节日\n";if (my @gjjr=$gjjr=~/(.+?\n)/g){foreach (@gjjr){print "\${offset 120}$_";}
}
print "\${color}";sub gl2nl{my ($year,$month,$day)=@_;open TXT,"</home/jianlei/bin/nongli.txt";while (<TXT>){if (/^$year-$month-$day (.+)/){close TXT;return $1;}}close TXT;return 0;
}sub dom{my ($year,$month)=@_;if ($month==1||$month==3||$month==5||$month==7||$month==8||$month==10||$month==12){return 31;}elsif ($month==4||$month==6||$month==9||$month==11){return 30;}elsif (($year%100==0&&$year%400==0)||($year%4==0)){return 29;}else {return 28;}
}sub zwy{my $month=$_[0];if ($month=~/^1$/){return "一";}elsif ($month=~/^2$/){return "二";}elsif ($month=~/^3$/){return "三";}elsif ($month=~/^4$/){return "四";}elsif ($month=~/^5$/){return "五";}elsif ($month=~/^6$/){return "六";}elsif ($month=~/^7$/){return "七";}elsif ($month=~/^8$/){return "八";}elsif ($month=~/^9$/){return "九";}elsif ($month=~/^10$/){return "十";}elsif ($month=~/^11$/){return "十一";}elsif ($month=~/^12$/){return "十二";}}sub ctjr{my $date=$_[0];if ($date=~/正月初一/){return "正月初一 春节\n";}elsif ($date=~/正月初五/){return "正月初五 路神生日\n";}elsif ($date=~/正月十五/){return "正月十五 元宵节\n";}elsif ($date=~/二月初二/){return "二月初二 龙抬头\n";}elsif ($date=~/四月初四/){return "四月初四 寒食节\n";}elsif ($date=~/五月初五/){return "五月初五 端午节\n";}elsif ($date=~/六月初六/){return "六月初六 天贶节\n六月初六 姑姑节\n";}elsif ($date=~/六月廿四/){return "六月廿四 彝族火把节\n";}elsif ($date=~/七月初七/){return "七月初七 七夕节\n";}elsif ($date=~/七月十五/){return "七月十五 盂兰盆节\n";}elsif ($date=~/七月三十/){return "七月三十 地藏节\n";}elsif ($date=~/八月十五/){return "八月十五 中秋节\n";}elsif ($date=~/九月初九/){return "九月初九 重阳节\n";}elsif ($date=~/十月初一/){return "十月初一 祭祖节\n";}elsif ($date=~/冬至/){return "冬月冬至 冬至节\n";}elsif ($date=~/腊月初八/){return "腊月初八 腊八节\n";}elsif ($date=~/腊月廿三/){return "腊月廿三 过小年\n";}elsif ($date=~/腊月三十/){return "腊月三十 除夕\n";}
}sub gjjr{my $month=$_[0];if ($month==1){return "新年元旦[01.01]\n黑人节[1月第一个星期天]\n中国13亿人口日[01.06]\n日本成人节[1月第二个星期一]\n中国110宣传日[01.10]\n国际麻风节[1月最后一个星期日]\n";}elsif ($month==2){return "世界湿地日[02.02]\n世界抗癌症日[02.04]\n世界气象日[02.10]\n情人节[02.14]\n国际母语日[02.21]\n国际声援南非日[02.07]\n";}elsif ($month==3){return "全国爱耳日[03/03]\n妇女节[03/08]\n植树节[03/12]\n国际消费日[03/15]\n世界森林日 [03/21]\n世界水日[03/22]\n世界气象日[03.23]\n世界防治结核病日[03.24]\n";}elsif ($month==4){return "愚人节[04.01]\n清明节[04.05]\n世界卫生日 [04.07]\n世界地球日[04.22]\n";}elsif ($month==5){return "国际劳动节[05.01]\n中国青年节[05.04]\n全国碘缺乏病日 [05.05]\n世界红十字日[05.08]\n国际护士节[05.12]\n国际家庭日[05.15]\n世界电信日[05.17]\n国际博物馆日[05.18]\n全国助残日[每年五月第三个星期日]\n中国汶川地震哀挨哀悼日[05.19]\n全国学生营养日[05.20]\n国际生物多样性日[05.22]\n国际牛奶日[每年5月的第三个星期二]\n世界无烟日[05.31]\n母亲节[5月第二个星期日]\n`";}elsif ($month==6){return "国际儿童节 [06.01]\n世界环境日[06.05]\n全国爱眼日[06.06]\n父亲节[6月第三个星期日]\n防治荒漠化和干旱日[06.17]\n国际奥林匹克日[06.23]\n全国土地日[06.25]\n国际反毒品日[06.26]\n";}elsif ($month==7){return "香港回归日[07.01]\n建党节[07.01]\n抗日战争纪念日[07.07]\n世界人口日[07/11]\n";}elsif ($month==8){return "八一建军节[08.01]\n";}elsif ($month==9){return "劳动节[09.01]\n国际扫盲日[09.08]\n教师节[09.10]\n国际臭氧层保护日[09.16]\n国际和平日[09.17]\n国际爱牙日[09.20]\n国际聋人节[9月第四个星期日]\n世界旅游日[09.27]\n";}elsif ($month==10){return "国庆节[10.01]\n国际音乐节[10.01]\n国际减轻自然灾害日[10.02]\n世界动物日[10.04]\n国际住房日[10.07]\n全国高血压日[10.08]\n世界视觉日[10.08]\n世界邮政日[10.09]\n世界精神卫生日[10.10]\n国际盲人节[10.15]\n世界粮食节[10.16]世界消除贫困日[10.17]\n中国(揭阳)国际玉器节[10.21]\n世界传统医药日[10.22]\n联合国日[10.24]\n人类天花绝迹日[10.25]\n足球诞生日[10.26]\n万圣节[10.31]\n";}elsif ($month==11){return "中国记者日[11.08]\n消防宣传日[11.09]\n世界糖尿病日[11.14]\n国际大学生节[11.17]\n感恩节[11月第四个星期四]\n";}elsif ($month==12){return "世界艾滋病日[12.01]\n世界残疾人日[12.03]\n世界足球日[12.09]\n澳门回归纪念日[12.20]\n国际篮球日[12.21]\n平安夜[12.24]\n圣诞节[12.25]\n世界强化免疫日[12.25]\n";}
}

文件下载:http://files.cnblogs.com/jlzhang/nongli.rar

转载于:https://www.cnblogs.com/jlzhang/articles/1757689.html

一个显示农历的日历小程序相关推荐

  1. python日历小程序_一个查看网络设备信息Python小程序

    原标题:一个查看网络设备信息Python小程序 网络编程中,最常见的一个问题就是,获取设备信息. 首先我们,要学习如何获取本机的网络信息.我们将用到标准库中的socket库.假如说,我们要查看本机的 ...

  2. 不知道有哪些日历小程序的,看这里!

    最近很多小伙伴都在问我哪些天气小程序是比较好用的,还有不知道有哪些日历小程序的,看这里啦! 一.天天预约日历 天天预约日历简单的来说就是一个备忘录,您只需要在上面挑选一个日期,选择好时间,填上您那天想 ...

  3. 编程日历小程序,对小程序云开发和生成分享海报的实践

    1.起源 朋友圈晒的很多的一本日历书<了不起的程序员 2021>,我也买了,很厚,纸质书嘛,现在已经很少看了,加上这是一本日历书,希望是每天都打开看.可实际上的情况是,要么忘记看今天的内容 ...

  4. java gui 日历_Java实现简单日历小程序 Java图形界面小日历开发

    今天给大家介绍一下如何用Java swing开发一款简单的小日历,下面我们来看代码: 首先创建一个CalendarBean类,用于基本的日期计算: package other1; import jav ...

  5. Java实现简单的日历小程序之Java图形界面开发小日历

    首先创建一个CalendarBean类,用于基本的日期计算: package other1;import java.util.Calendar; public class CalendarBean { ...

  6. java 日历界面_Java实现简单日历小程序 Java图形界面小日历开发

    今天给大家介绍一下如何用java swing开发一款简单的小日历,下面我们来看代码: 首先创建一个calendarbean类,用于基本的日期计算: package other1; import jav ...

  7. java简易日历程序报告_Java实现简单日历小程序 Java图形界面小日历开发

    今天给大家介绍一下如何用Java swing开发一款简单的小日历,下面我们来看代码: 首先创建一个CalendarBean类,用于基本的日期计算: package other1; import jav ...

  8. python日历小程序_python写的日历小程序

    查看: 14785|回复: 262 [作品展示] python写的日历小程序 电梯直达 发表于 2013-8-19 21:38:32 | 只看该作者 |倒序浏览 |阅读模式 马上注册,结交更多好友,享 ...

  9. Calendar日历小程序

    //有待完善,有点bug package com.sunshine.framework.calendar.model; import java.util.Calendar; /**  *  * < ...

最新文章

  1. 历史转折中的英伟达:百亿豪赌出奇迹 实习生项目救主
  2. java程序员的NodeJS初识篇
  3. vijos 1198 最佳课题选择
  4. traceroute和mtr
  5. 中国人工智能学会通讯——KS-Studio:一个知识计算引擎 1.2 知识图谱构建
  6. lan交换和无线教师手册_无线交换机的出现,能否解放双手?
  7. 三八妇女节可以应用的PSD分层模板
  8. NOIP2017奶酪
  9. jenkins测试人员的使用
  10. Intent直接跳转到Fragment
  11. 计算机网络-网络安全
  12. Backdoor.Zegost木马病毒分析(一)
  13. mate桌面暗色调超好看的配置
  14. Markdown 4 印象笔记之马克飞象
  15. Tipask,Tipask建站,Tipask插件
  16. 【数据结构】图(最短路径Dijkstra算法)的JAVA代码实现
  17. 【HTML/CSS】创建日期和时间表单控件
  18. c++英雄联盟_C联盟
  19. hrm项目-day01
  20. 美团点评2020校招笔试练习

热门文章

  1. 战区与游戏服务器的连线已中断,使命召唤战区无法连接服务器如何解决?无法连接服务器解决方法介绍[多图]...
  2. 如何成为一名合格的数据科学家(IT专家网)
  3. laradock一些坑(长期维护)
  4. 「LibreOJ NOI Round #2」单枪匹马
  5. 钉钉小程序文本框内容换行符号\n的解析处理
  6. IgnoreActorWhenMoving
  7. Vue路由传参(params 与 query)
  8. 海康威视java读取摄像头数据
  9. shell实现除法计算器
  10. 网站导航如何SEO优化