java打印日历

代码:

package com.sjx.test1;
import java.text.DateFormatSymbols;
import java.util.*;
/**
 * @version 1.0
 * @author sjx
 */

public class Graph {
    public static void main(String[] args)
    {
        Locale.setDefault(Locale.US); //在java.util.locale包下,如果不加它,显示的就是星期几,而不是sun,sat之类的,中文是locale.CHINESE或者CHINA
        GregorianCalendar d = new GregorianCalendar();
         int today = d.get(Calendar.DAY_OF_MONTH);
         int month = d.get(Calendar.MONTH);

         d.set(Calendar.DAY_OF_MONTH, 1);

         int weekday = d.get(Calendar.DAY_OF_WEEK);

         int firstDayOfWeek = d.getFirstDayOfWeek();

         int indent = 0;
         while(weekday!=firstDayOfWeek)
         {
             indent++;
             d.add(Calendar.DAY_OF_MONTH, -1);
             weekday = d.get(Calendar.DAY_OF_WEEK);
         }

         String [] weekdayNames = new DateFormatSymbols().getShortWeekdays();
         do
         {
             System.out.printf("%4s", weekdayNames[weekday]);
             d.add(Calendar.DAY_OF_MONTH, 1);
             weekday = d.get(Calendar.DAY_OF_WEEK);
         }while(weekday!=firstDayOfWeek);

         System.out.println();
         for(int i = 1; i<=indent; i++)
         System.out.print("    ");

         d.set(Calendar.DAY_OF_MONTH, 1);
         do
         {
             int day = d.get(Calendar.DAY_OF_MONTH);
             System.out.printf("%3d", day);

             if(day==today) System.out.print("*");
             else System.out.print(" ");

             d.add(Calendar.DAY_OF_MONTH, 1);
             weekday = d.get(Calendar.DAY_OF_WEEK);

             if(weekday==firstDayOfWeek)
                 System.out.println();
         }while(d.get(Calendar.MONTH)==month);

         if(weekday!=firstDayOfWeek) System.out.println();
    }
}

效果:

时间: 2024-08-01 09:54:39

java打印日历的相关文章

java打印日历方法

package cn.baokx.test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class Test { public static void main(String ... args) { String dat

使用java 打印日历

package hangshu; /* * 打印从1900年到2.year年的日历 */ import java.util.Scanner; public class Calender { public static int year = Integer.MIN_VALUE; public static int month = Integer.MIN_VALUE; private static int[] m = {31,28,31,30,31,30,31,31,30,31,30,31}; pu

【Java自学】 打印日历信息

1 package codeTask_FangFa; 2 // 5.34 使用zeller公式,打印某年某月的日历信息. 3 import java.util.Scanner; 4 public class PrintRiLi { 5 public static void main(String[] args){ 6 Scanner input = new Scanner(System.in); 7 System.out.println("请输入需要打印日历的年份:"); 8 int

Java打印整数的二进制表示(代码与解析)

Java打印整数的二进制表示(代码与解析) int a=-99; for(int i=0;i<32;i++){ int t=(a & 0x80000000>>>i)>>>(31-i); System.out.print(t); } 拆分一下这段代码,要理解这个移位输出的问题还需要理解的以下内容:* 0x80000000是数的十六进制表示,转成二进制表示为10000000000000000000000000000000* 运算的优先级,移位运算高于逻辑运算,

java 打印流PrintWriter基本操作

import java.io.*; public class PrintDemo { public static void main(String[] args) { PrintWriter writer=null; writer=new PrintWriter(System.out); String str=new String("Hello cjc!!!"); writer.print(str); writer.close(); try { writer=new PrintWrit

Java Calendar日历类的使用

Calendar cal = Calendar.getInstance(); // 当前年 int year = cal.get(Calendar.YEAR); // 当前月 int month = (cal.get(Calendar.MONTH)) + 1; // 当前月的第几天:即当前日 int day_of_month = cal.get(Calendar.DAY_OF_MONTH); // 当前时:HOUR_OF_DAY(24小时制):HOUR(12小时制) int hour = cal

自写打印日历类

在论坛上看到有人在问打印日历的程序,今天下午空闲的时候写了一个日历类,简单的写了几个方法. calendar.h #include <string> using namespace std; #ifndef CALENDAR_H #define CALENDAR_H class Calendar{ public: Calendar(){} void printAllMonth(const int &year); void printOneMonth(const int &yea

java打印正金字塔,倒金字塔和“水影”金字塔

java打印正金字塔,倒金字塔和"水影"金字塔 --------原创文章,若要转载,请注明出处 小小少年 闲来无事,想起自己初学java的时候做的经典的无非就是打印出一些有意思的图形,心血来潮自己就写了这么一个打印金字塔的demo,自己回顾一下当初的感受,同时也 分享给初学java的同道中人,一起来培养编程的兴趣<(^-^)>. 金字塔图案 1,问题分析 我们都知道,打印输出的时候,都是从最左端输出,而这里,第一个星号是在中间.这实际是因为星号之前有很多空格.当我们使用问号

Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录)

Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录) 作者:王可利(Star·星星) 效果图: 代码如下: 1 class Star8 2 { 3 public static void main(String[] args) 4 { 5 /* 空格 6 * 1 2*i-1 3 4-1 4-i 7 *** 3 2 4-2 8 ***** 5 1 4-3 9 ******* 7 0 4-4 10 */ 11 //第一层循环控制的是行数 12 for(int i = 1;i<=