学习boost之0 开发一个日历
2014-06-20 21:11
155 查看
早有听闻boost很强大,最近开始学点皮毛。先从简单的开始学,就date_time库吧。
大致看了下date_time库的实现,不难,日期的核心算法是蔡勒公式,时间是调用底层的localtime。boost的强大之处就是普通人用几个函数就能搞定的东西,他给你封装几十个类。比如日期除了整数难道有其他类型吗?吐槽归吐槽,用起来还是很方便的。
用他提供的类写了一个控制台日历。
输出如下
开发效率上讲还是蛮高的,十分钟搞定哈。
大致看了下date_time库的实现,不难,日期的核心算法是蔡勒公式,时间是调用底层的localtime。boost的强大之处就是普通人用几个函数就能搞定的东西,他给你封装几十个类。比如日期除了整数难道有其他类型吗?吐槽归吐槽,用起来还是很方便的。
用他提供的类写了一个控制台日历。
#include <boost/date_time.hpp> #include <iostream> void calendar() { // 包含相关名字空间 using namespace boost::posix_time; using namespace boost::gregorian; using std::cout; using std::endl; ptime pt( second_clock::local_time() ); // 获取当前时间 cout << "日\t一\t二\t三\t四\t五\t六" << endl; date dt = pt.date(); // 获取当前日期 dt -= days( dt.day() - 1 ); // 切换到本月一号 int i = dt.day_of_week(); // 获取一号是星期几 // 以下是格式化输出 for ( int k = 0; k < i; k++ ) cout << "\t"; int nday = gregorian_calendar:: end_of_month_day( dt.year(), dt.month() ); // 获取当前月的天数 for ( int j = 1; j <= nday; j++,i++ ) { if ( i != 0 && i % 7 == 0 ) cout << endl; cout << j << "\t"; } cout << endl; }
输出如下
开发效率上讲还是蛮高的,十分钟搞定哈。
相关文章推荐
- 通过一个简单的SWING日历BEAN开发学习Calendar类的使用(1)Calendar概述
- 通过一个简单的SWING日历BEAN开发学习Calendar类的使用(2)JCalendar源代码
- 刚刚开始学习j2me,目标是开发一个小游戏
- 开发一个网络学习游戏(抛砖引玉)
- 忆龙2009:一个介绍游戏开发的学习空间
- CAD二次开发学习笔记二(创建一个对话框)
- 网络游戏服务器开发::学习了两天python写了一个linux下自动安装程序的脚本
- 程序开发基础学习三(boost::bind 函数学习)
- 谁给我一个学习软件开发的课程目录
- 传智播客ejb学习,EJB中的三种bean及开发一个无状态会话bean
- 传智播客ejb学习,EJB中的三种bean及开发一个无状态会话bean
- [导入]推荐一个java学习和开发的一个工作室
- 用Java Swing作一个日历控制程序-Java基础-Java-编程开发
- [转]Django 是一个 Python 下的 web 开发框架[学习资料]
- 一个学习c语言windows开发的好去处
- JAVA学习提高之----如何用Eclipse和Tomcat Plugin来建立一个开发环境
- 新建立一个QQ群:“Windows Mobile 开发”,欢迎各位加入共同交流学习。
- 想开发一个背单词的学习软件
- GTK+图形化应用程序开发学习笔记(十五)—日历构件
- [iphone 开发学习笔记]Object-C和C语言最大的区别也是最大的扩展-----消息(即如何调用一个对象中的函数)