2.2 按照下述格式打印2016年1月日历:

Calendar 2016-01
--------------------------
Su  Mo  Tu  We  Th  Fr  Sa
--------------------------
                     1   2
 3   4   5   6   7   8   9
10  11  12  13  14  15  16
17  18  19  20  21  22  23
24  25  26  27  28  29  30
31
--------------------------
  • 这种对空格严格要求对齐的,一定要使用setw(n)这个函数。这个函数功能很强大的。会自动帮你占 n 位。这里的n,就是该函数的参数。也就是说,你输入几,就给你占几个位。然后,字符串默认右对齐。多余的空格在前面显示出来。
std::cout << std::setw(4) << "abc"<< std::setw(2)<<"x"<<std::endl;输出:
>>> abc x

从输出效果可知,在abcx的前面,都又一个空格位。

通过这一验证,打印出一个月的日历效果就不会难了。


void printCalendar() {enum WeekDay {Su = 0, Mo, Tu, We, Th, Fr, Sa};WeekDay init = Fr;// print headstd::cout << "Calendar 2016-01" << std::endl;std::cout << "--------------------------" << std::endl;std::cout << "Su  Mo  Tu  We  Th  Fr  Sa" << std::endl;std::cout << "--------------------------" << std::endl;for (int i = 0; i < 31; ++i) {WeekDay wd = (WeekDay) ((i + (int) init) % 7);
//        std::cout << "wd = " << wd << " , " << "Fr = " << Fr << std::endl;int t = 0;if(i==0){t = 22;} else{t = 4;}switch (wd) {case Su:std::cout << std::setw(2) << (i + 1);break;case Mo:std::cout << std::setw(4) << (i + 1);break;case Tu:std::cout << std::setw(4) << (i + 1);break;case We:std::cout << std::setw(4) << (i + 1);break;case Th:std::cout << std::setw(4) << (i + 1);break;case Fr:std::cout << std::setw(t) << (i + 1);break;case Sa:std::cout << std::setw(4) << (i + 1)<<std::endl;break;default:break;}}std::cout << std::endl << "--------------------------" << std::endl;
}

输出效果于前面展示的别无二致。~

c++: 格式化打印日历一个月的所有日期相关推荐

  1. js 获取当前与一个月前的日期

    在前端页面的日期选择框里放入当前日期以及一个月前的日期.先直接将month减去1,如果减完日期无效,例如:3月31变为2月31,,出现逻辑错误,那就采取减30天的方案 jsp代码 <div cl ...

  2. 查询一个月的全部日期

    1.解析:查询一个月的全部日期 SELECT ADDDATE(monthAndDay.first, allMonth.d - 1) as day, -- 这是每个月的全部天数 经过每一次的查找进行加 ...

  3. Oracle获取一周前,一个月前,一年前的日期,一个月的总天数、一个月的全部日期

    目的:Oracle获取一周前,一个月前,一年前的日期,一个月的总天数.一个月的全部日期 1.获取10分钟前的日期 select sysdate,sysdate-interval '10' minute ...

  4. datetimepicker用法总结-设置控件只能选择一个月之内的日期

    最近写代码遇到一个需求,时间控件开始时间只能选择当前时间之前的一个月的,截止时间不能超过当前时间,搞了好久 今天天贴出来 跟大家分享,顺便总结一下datetimepicker的用法,主要注意start ...

  5. Android获取一个月前的日期,Android DatePicker Fragment返回一个月前的日期

    好,这很奇怪.我有一个非常简单的DatePicker对话框.问题是,无论我选择什么日期,返回的值都恰好是所选日期的一个月.这是我的代码: 活动 btnEventDate.setOnClickListe ...

  6. java当前月份减一个月_Java对日期Date类进行加减运算、年份加减月份加减、时间差等等...

    实现代码一: import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public c ...

  7. js日期操作,某天的N天后,一个月后的日期

    var date = new Date();var tomorrow = date.setDate(new Date().getDate() + 10); //10天后的日期console.log(d ...

  8. oracle获取当前年上一年时间,Oracle获取一周前,一个月前,一年前的日期

    1.获取当前时间一周前的日期 select sysdate - interval '7' day from dual 类似的 当前时间减去7分钟的时间 select sysdate,sysdate - ...

  9. Js中Date日期的使用(加一天,加一个月,获取0时0分0秒,23时59分59秒等)

    代码示例如下:(以当前日期new Date()为例.也可以将例中new Date()换成任意Date对象) 1.获取今天的0时0分0秒(常用于开始日期的获取) var startDate= new D ...

  10. java当前日期加一个月_用代码实现使当前日期 Date型的数据增加一个月

    展开全部 Calendar cal = Calendar.getInstance(); //下面的就是把当前日期加一个月 cal.add(Calendar.MONTH, 1) SimpleDateFo ...

最新文章

  1. 认识Web前端、Web后端、桌面app和移动app新开发模式 - 基于Node.js环境和VS Code工具...
  2. Eclipse_插件_05_自动下载jar包源码插件
  3. java 信使服务_java – 自行车信使/ TSPPD与OptaPlanner
  4. cass字体_不动产 准备工作 第一步: 管理CASS码
  5. python时间time模块介绍
  6. php堆栈溢出,php - 警告:php_eval() - 堆栈内存溢出
  7. Keil/MDK(2):STM32堆栈使用情况分析
  8. 使用 Mac 的 Safari 收看 Netflix 时出现错误码「S7361-1253」如何解决?
  9. Vmplayer NAT模式下做端口映射
  10. 中国甲鱼养殖行业发展现状分析,浙江省产量最高「图」
  11. Iphone 和 Ipad 开发 区别
  12. 语音用户如何计算机,笔记本电脑语音聊天对方听不清声音该怎么处理
  13. win10计算机文件夹隐藏,Win10怎么隐藏文件夹_Win10怎么隐藏此电脑的文件夹-192路由网...
  14. 如何利用计算机进行数制转换,如何教授计算机基础中的数制转换内容
  15. 羽毛球场示意图及羽毛球比赛规则
  16. linux 进入汉字目录,终端下拼音补全中文名称和路径
  17. VL02N、VL09交货单相关增强
  18. 2018福建省c语言二级成绩查询,全国计算机二级成绩查询
  19. 【计算机网络】网络基础必知必会
  20. 《哪吒》票房超越《药神》,用Python来预测下《哪吒》的票房

热门文章

  1. 用 Python 给全球女神颜值排个序,周冬雨比anglebaby更好看?
  2. 数据结构:平衡二叉树
  3. 六 Python之scrapy爬虫框架
  4. 桁架工业机器人编程_桁架机器人
  5. Python连接Oracle数据库实现增删改查
  6. RabbitMQ-Day1
  7. Zbush建模笔记_063_丝袜制作知识点
  8. python根据方法名获取方法_Python中如何通过函数名获得此函数是否有装饰器
  9. 2021最新互联网面试必问Java后端面试题(含答案)
  10. Promise 是如何工作的?