function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Lakshmi SLakshmi S 

Converting Date to Quarter ?

Hi Team,

How to convert Date to Quarter?
Date : 08/03/2018 this i want to convert like 2018 Q3.
How can we convert this using Trigger.

Note : Not using formula.

Please let me know any one.


Regards
Lakshmi.
Steven NsubugaSteven Nsubuga
Use this method or logic in your trigger, preferably in a handler class
public static String getQuarterNumber(Date d) {

        if(d.month() >= 1 && d.month() <= 3)
            return d.year() + ' Q1';
        else if (d.month() >= 4 && d.month() <= 6)
			return d.year() + ' Q2';
        else if (d.month() >= 7 && d.month() <= 9)
            return d.year() + ' Q3';
        else 
            return d.year() + ' Q4';
}

 
Ajay K DubediAjay K Dubedi
Hi Lakshmi,

You can try the following code. Hope this will help.

trigger OppTrigg on Opportunity (before insert,before update,after insert,after update) {

    if(Trigger.isUpdate && Trigger.isAfter)
        OppTrigger.convertDateToQuarter(Trigger.newMap,Trigger.OldMap);
}


public class OppTrigger {

    public static convertDateToQuarter(Map<Id,Opportunity> newOpp,Map<Id,Opportunity> oldOpp) {

        for(Id recId : newOpp)
        {
            Date newDate = newOpp.get(recId).Custom_Date__c;
            Integer newDateQuarter = getQuarterNumber(newDate);
            Date oldDate = oldOpp.get(recId).Custom_Date__c;
            Integer oldDateQuarter = getQuarterNumber(oldDate);

            if(newDate.year() > oldDate.year() || (newDate.year() == oldDate.year() && newDateQuarter > oldDateQuarter))
            {
                //  Do Something for Future Quarter
            } else if(newDate.year() == oldDate.year() && newDateQuarter == oldDateQuarter) {
                //  Do Something for No Quarter change
            } else {
                //  Do Something for Past Quarter
            }

        }

    }

    public static Integer getQuarterNumber(Date d) {
        if(d.month() >= 1 && d.month() <= 3)
            return 1;
        else if (d.month() >= 4 && d.month() <= 6)
            return 2;
        else if (d.month() >= 7 && d.month() <= 9)
            return 3;
        else 
            return 4;
    }
}

Thank You
Ajay Dubedi
Glyn Anderson (Slalom)Glyn Anderson (Slalom)
<pre>
public String convertDateToQuarter( Date dt )
{
    return
    (   String.valueOf( dt.year() )
        + ' Q'
        + String.valueOf( Integer.valueOf( Math.floor( (dt.month() + 3)/4 ) ) )
    );
}
</pre>